Php Laravel RESTful最佳实践
我正在使用Laravel 4.2构建一个RESTful应用程序,使用资源控制器,如下所述: 该应用程序是一个在线发布平台。 该应用程序的一部分允许客户端上传图像并裁剪不同出版物的图像。 每个图像都可以标记标题、艺术家、描述 通常,RESTful获取索引请求URL如下所示。 HTTP-GET:example.com/image/ 每个图像都将使用如下URL进行检索。 HTTP-GET:example.com/image/{id} 图像编号3将通过HTTP DELETE删除到如下URL。 HTTP删除:example.com/image/3 然而,我的RESTful困境出现了,因为每个图像必须存储在预定义的裁剪大小中。 因此,图像资源将共享标题、艺术家和描述,并具有必须以四种不同大小检索的表示: 起初的 1024x768, 640x480, 320x240 预计每年的需求量约为80000张图像,产生320000张单独的图像文件(每个原始图像+3张) 这里是我寻找“最佳实践”建议的地方 我的图像模型应该是什么样子的,以允许客户端处理一个端点,以便轻松检索每个裁剪的图像 处理标题、艺术家和描述的共同性质的好方法是什么 如果我想检索原始和1024x768中的图像#3,URL会是什么样子: 原件:example.com/image/??? 1024x768:example.com/image/ 如果我想删除图像#3的所有裁剪版本,URL会是什么样子: HTTP删除:example.com/image/Php Laravel RESTful最佳实践,php,image,rest,symfony,laravel-4,Php,Image,Rest,Symfony,Laravel 4,我正在使用Laravel 4.2构建一个RESTful应用程序,使用资源控制器,如下所述: 该应用程序是一个在线发布平台。 该应用程序的一部分允许客户端上传图像并裁剪不同出版物的图像。 每个图像都可以标记标题、艺术家、描述 通常,RESTful获取索引请求URL如下所示。 HTTP-GET:example.com/image/ 每个图像都将使用如下URL进行检索。 HTTP-GET:example.com/image/{id} 图像编号3将通过HTTP DELETE删除到如下URL。 HTTP
谢谢你的分享 大小的图像文件是原始图像资源的从属资源。所以尺寸信息应该在id之后:(或者因为你的分辨率是静态的,你可以这样做) 如果要删除原始尺寸和所有尺寸,请删除 如果要删除单个尺寸,请删除
如果你想上传一个新的图像大小,你可以这样做,POST(使用代码检查图像大小)我认为缩略图是
图像
资源的子资源;也许是缩略图资源?因此,您可以有如下URL结构:
- {id}
- {id}/thumbnail/{small | medium | large}
嵌套资源控制器可以在Laravel中实现:(搜索标题“处理嵌套资源控制器”)
这样,您可以通过发出请求来操作单个缩略图资源,也可以操作图像(和任何缩略图)。父图像资源只需在图像模型上设置一个侦听器,以便在删除图像资源时首先删除子缩略图资源。大概是这样的:
Image::deleting(function($image)
{
Thumbnail::where('image_id', '=', $image->id)->delete();
});
我不知道Laravel如何使用Restful API,但通常Restful API中URL的规则有点不同
- 使用get方法获取单个对象{id}
- 获取列表--使用get方法
- 插入/创建新对象--使用方法POST
- DELETE-{id}-使用DELETE方法
- PUT-{id}-与方法PUT
- 使用get方法获取具有某些参数的单个对象-{id}?type=small
我还发现这篇文章非常有用。我不知道什么是“最佳”实践
在我看来,遵循OASIS开放数据协议(OData)4.0版是一个很好的实践
更多信息请参见谢谢,Laravel的“嵌套”控制器路由正是我所需要的@RayPaseur很高兴我能帮上忙:)同意:Vinay Sahni的文章在一个地方整合了很多好的信息。谢谢