请问关于 Restful 接口的书写规范

我有 productsattributesattributeValues 3 张表
products 和 attributes 是一对多的关系
attributes 和 attributeValues 是一对多的关系

关于restful的接口设计规范应该怎么选择?应该写在哪个控制器里?

// 根据商品 id 获取属性列表
GET http://{{host}}/admin/products/100/attributes          ProductsController
GET http://{{host}}/admin/attributes?product_id=100     AttributesController   

// 新增商品属性[批量]
POST http://{{host}}/admin/products/100/attributes       ProductsController
POST http://{{host}}/admin/attributes                         AttributesController

// 删除商品属性
DELETE http://{{host}}/admin/products/100/attributes/100        ProductsController      
DELETE http://{{host}}/admin/attributes/100                         AttributesController

// 根据属性 id 获取属性列表
GET http://{{host}}/admin/products/100/attributes/100/attributeValues        ProductsController
GET http://{{host}}/admin/attributes/100/attributeValues          AttributesController
GET http://{{host}}/admin/attributeValues?attribute_id=100     AttributeValuesController   

// 新增商品属性值[批量]
POST http://{{host}}/admin/products/:product/attributes/100/attributeValues        ProductsController
POST http://{{host}}/admin/attributes/100/attributeValues        AttributesController
POST http://{{host}}/admin/attributeValues                              AttributeValuesController   

// 删除商品属性值
DELETE http://{{host}}/admin/products/100/attributes/100/attributeValues/100        ProductsController
DELETE http://{{host}}/admin/attributes/100/attributeValues/100         AttributesController
DELETE http://{{host}}/admin/attributeValues/100                                AttributeValuesController   

我阅读过以下2篇文章, 依然比较困惑
这是他们列举的2个例子

GET /zoos:列出所有动物园
POST /zoos:新建一个动物园
GET /zoos/ID:获取某个指定动物园的信息
PUT /zoos/ID:更新某个指定动物园的信息(提供该动物园的全部信息)
PATCH /zoos/ID:更新某个指定动物园的信息(提供该动物园的部分信息)
DELETE /zoos/ID:删除某个动物园
GET /zoos/ID/animals:列出某个指定动物园的所有动物
DELETE /zoos/ID/animals/ID:删除某个指定动物园的指定动物

GET  /issues 列出所有的 issue 
GET  /orgs/:org/issues 列出某个项目的 issue 
GET  /repos/:owner/:repo/issues/:number 获取某个项目的某个 issue 
POST  /repos/:owner/:repo/issues 为某个项目创建 issue 
PATCH  /repos/:owner/:repo/issues/:number 修改某个 issue 
PUT  /repos/:owner/:repo/issues/:number/lock 锁住某个 issue 
DELETE  /repos/:owner/:repo/issues/:number/lock 接收某个 issue

https://blog.csdn.net/u013007900/article/d...
2.5. Github 的 Restful HTTP API 设计分解

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!