我正在创建一个网络服务,我有一些关于路径名的问题。如何在 RESTful 网络服务中指定对资源的操作?
例如:测验资源。你有正常的 CRUD 操作,你也想做测验的事情。例如生成一个新的测验。那是一个 Action 。您使用的路径是 /quiz/top5
还是 /quiz?type=top5
或者什么?
我不明白在创建 RESTful 服务时如何编写对资源执行操作的路径。
最佳答案
我会推荐这本来自 apigee 的电子书: Web API Design: Crafting Interfaces that Developers Love .
听从他们的建议:
- 务实的 RESTful 设计的首要原则是:保持简单 事情很简单。
- 让您的基本网址简单直观。
+------------+-------------------+--------------+----------------------------------------+------------------+ | Resource | POST create | GET read | PUT update | DELETE delete | | /quizzes | Create a new quiz | List quizs | Bulk update quizs | Delete all quizs | | /quizes/12 | Error | Show Quiz 12 | If exists update Quiz 12, if not Error | Delete Quiz 12 | +------------+-------------------+--------------+-----------------------------------------+------------------+
关于您想要的顶级列表,也许类似于他们在“分页和部分响应”部分中概述的解决方案可能满足您的需求:
quizzes/top?limit=5
有了这个,您可以首先制作一个具有默认值(5 或 10 个项目)的资源 quizs/top
,然后提供分页/更改项目数量的能力。
关于c# - 命名 RESTful 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15905407/