之前做外包以快速交付为主忽略了一些好用方便维护的东西,现在开始一点点捡起来吧

Api控制器方法名

index(列表) store(新增) show(详情) update(更新) destroy(删除)

路由规范

使用资源路由并用only列出可用路由Route::resource('photos', PhotosController::class, ['only' => ['index', 'show']]);

资源路由URI使用复数形式 /photos/create /photos/{photo}

必须用name方法命名

路由模型绑定

获取URI方式

Service模式

必须 做到 Service 类无状态。

业务逻辑必须封装到对应的 ModelService 类中。

所有的 Service 类都必须存放于 app/Services 目录中(注意是复数)。

应该避免直接将 Service 类放置于 app/Services 目录下,应该考虑通过业务逻辑,将其归类于子目录中。

模型规范

数据模型类名 必须 为「单数」, 如:App\Models\Photo

类文件名 必须 为「单数」,如:app/Models/Photo.php

数据库表名字 必须 为「复数」,多个单词情况下使用「Snake Case」 如:photos, my_photos

Http状态响应码

  • 200 OK - 对成功的 GET、PUT、PATCH 或 DELETE 操作进行响应。也可以被用在不创建新资源的 POST 操作上
  • 201 Created - 对创建新资源的 POST 操作进行响应。应该带着指向新资源地址的 Location 头
  • 202 Accepted - 服务器接受了请求,但是还未处理,响应中应该包含相应的指示信息,告诉客户端该去哪里查询关于本次请求的信息
  • 204 No Content - 对不会返回响应体的成功请求进行响应(比如 DELETE 请求)
  • 304 Not Modified - HTTP 缓存 header 生效的时候用
  • 400 Bad Request - 请求异常,比如请求中的 body 无法解析
  • 401 Unauthorized - 没有进行认证或者认证非法
  • 403 Forbidden - 服务器已经理解请求,但是拒绝执行它
  • 404 Not Found - 请求一个不存在的资源
  • 405 Method Not Allowed - 所请求的 HTTP 方法不允许当前认证用户访问
  • 410 Gone - 表示当前请求的资源不再可用。当调用老版本 API 的时候很有用
  • 415 Unsupported Media Type - 如果请求中的内容类型是错误的
  • 422 Unprocessable Entity - 用来表示校验错误
  • 429 Too Many Requests - 由于请求频次达到上限而被拒绝访问