我是一名 Android 开发人员,并且对 RESTful API 开发也有一些了解。目前我正在使用 Dot Net Web API 构建一个 API。一切正常,但我仍然关心设计。
我现在最关心的是响应的元数据到底应该是什么,就像除了“响应代码”和“响应消息”之外我可以添加的其他有用元素。
我关心的第二个问题是请求是异步的还是查询,或者两者兼而有之。
最后一个问题是我应该使用什么技术来进行有状态的通信,如 JWT 或基本身份验证等。无状态。
我是一名 Android 开发人员,并且对 RESTful API 开发也有一些了解。目前我正在使用 Dot Net Web API 构建一个 API。一切正常,但我仍然关心设计。
我现在最关心的是响应的元数据到底应该是什么,就像除了“响应代码”和“响应消息”之外我可以添加的其他有用元素。
我关心的第二个问题是请求是异步的还是查询,或者两者兼而有之。
最后一个问题是我应该使用什么技术来进行有状态的通信,如 JWT 或基本身份验证等。无状态。
首先,您应该阅读Roy Thomas Fielding的Architectural Styles and the Design of Network-based Software Architectures第 5 章。您将直接了解 REST 的架构约束、元素和视图。
我现在最关心的是响应的元数据到底应该是什么,就像除了“响应代码”和“响应消息”之外我可以添加的其他有用元素。
REST 的一个架构元素是表示。表示允许客户端解释响应。在 RESTful HTTP 表示的情况下,由 MIME 类型实现。有关详细信息,请参阅 [ 2 ]。您应该考虑的其他方面是 URI、支持的 HTTP 方法、URL 参数和消息正文。
我关心的第二个问题是请求是异步的还是查询,或者两者兼而有之。
REST 的一个架构约束是客户端-服务器架构风格。因此,您的服务器应该处理并发请求以一次处理多个客户端请求。如果查询、方法或函数是异步处理的,则与 RESTful 无关。
最后一个问题是我应该使用什么技术来进行有状态的通信,如 JWT 或基本身份验证等。
JWT 和基本认证都是无状态的认证方式。术语无状态意味着客户端请求包含服务器处理客户端请求所需的所有信息。
1) META 数据 - 资源表示应该按照Fielding自己的 HATEOAS 驱动。所以你可以考虑在元数据中添加相关资源链接。
2) 同步/异步 - 这取决于 API 试图做什么。如果它正在调用一个长时间运行的进程,那么 Async API 是自然的选择。否则坚持使用 Sync API。
3)有状态的通信——无状态是REST架构的约束之一。在请求之间,不应将客户端上下文存储在服务器上。客户端负责管理应用程序的状态。