c# - 命名 RESTful 路径

标签 c# java web-services

我正在创建一个网络服务,我有一些关于路径名的问题。如何在 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/

相关文章:

java - Elasticsearch 开始期间的java.lang.NoSuchMethodError

eclipse - Mule 和 Eclipse 的 WSDL 问题

c# - MongoDb 传递谓词参数

c# - 在 GridView 中的 ASCX 控件内的控件上使用 Javascript 显示隐藏。 (ASP.NET + JavaScript)

c# - "throw"和 "throw ex"之间有区别吗?

c# - Unity - 如何旋转和全屏视频,在 RawImage 上使用 VideoPlayer API 播放

java - 将位图转换为字节数组,字符串,然后一路返回

java - 当 DNS 无法访问时 URLConnection.setConnectTimeout() 不起作用

java - 缓存在 JAX-RS 中是如何工作的?

web-services - SharePoint UserData 和返回数据中的 ;# 语法