RESTful API 最佳实践
RESTful API best practices
我是一名 Android 开发人员,并且对 RESTful API 开发也有一些了解。目前我正在使用 Dot Net Web API 构建一个 API。一切正常,但我仍然关心设计。
我现在最关心的是响应的元数据到底应该是什么,就像除了 'Response Code' 和 'Response Message' 之外我还可以添加哪些其他有用的元素。
我的第二个问题是请求是异步的还是查询是异步的,还是两者兼而有之。
最后一个问题是我应该使用什么技术来使有状态的通信(如 JWT 或基本身份验证等)无状态。
首先你应该阅读 Architectural Styles and 的第 5 章
Roy Thomas Fielding 的基于网络的软件架构设计。您将直接了解 REST 的架构约束、元素和视图。
The core concern for me now is what exactly should be the Metadata of the response like what other helpful elements I can add apart from 'Response Code' and 'Response Message'.
REST 的一个架构元素是表示。陈述允许客户端解释响应。在 RESTful 的情况下,HTTP 表示由 MIME 类型实现。有关详细信息,请参阅 [2]。
您应该考虑的其他方面是 URI、支持的 HTTP 方法、URL 参数和消息正文。
Second concern for me is that should the request be asynchronous or the query or both.
REST 的一个架构约束是客户端-服务器架构风格。因此,您的服务器应该处理并发请求,以便一次处理多个客户端请求。如果查询、方法或函数是异步处理的,那么 RESTful 并不重要。
And the last concern is what technique should I use to make a stateful communication like JWT or Basic Authentication, etc.
JWT和基本认证都是无状态的认证方式。术语无状态意味着客户端请求包含服务器处理客户端请求所需的所有信息。
1) META 数据 - 资源表示应按照 Fielding himself. So you may consider to add related resources links in meta data.
驱动 HATEOAS
2) Sync/Async - 这取决于 API 试图做什么。如果它调用一个长的 运行 进程,那么 Async API 是自然的选择。否则坚持使用 Sync API.
3) 状态通信 - stateless 是 REST 架构的约束之一。在请求之间,不应将客户端上下文存储在服务器上。客户端负责管理应用程序的状态。
我是一名 Android 开发人员,并且对 RESTful API 开发也有一些了解。目前我正在使用 Dot Net Web API 构建一个 API。一切正常,但我仍然关心设计。
我现在最关心的是响应的元数据到底应该是什么,就像除了 'Response Code' 和 'Response Message' 之外我还可以添加哪些其他有用的元素。
我的第二个问题是请求是异步的还是查询是异步的,还是两者兼而有之。
最后一个问题是我应该使用什么技术来使有状态的通信(如 JWT 或基本身份验证等)无状态。
首先你应该阅读 Architectural Styles and 的第 5 章 Roy Thomas Fielding 的基于网络的软件架构设计。您将直接了解 REST 的架构约束、元素和视图。
The core concern for me now is what exactly should be the Metadata of the response like what other helpful elements I can add apart from 'Response Code' and 'Response Message'.
REST 的一个架构元素是表示。陈述允许客户端解释响应。在 RESTful 的情况下,HTTP 表示由 MIME 类型实现。有关详细信息,请参阅 [2]。 您应该考虑的其他方面是 URI、支持的 HTTP 方法、URL 参数和消息正文。
Second concern for me is that should the request be asynchronous or the query or both.
REST 的一个架构约束是客户端-服务器架构风格。因此,您的服务器应该处理并发请求,以便一次处理多个客户端请求。如果查询、方法或函数是异步处理的,那么 RESTful 并不重要。
And the last concern is what technique should I use to make a stateful communication like JWT or Basic Authentication, etc.
JWT和基本认证都是无状态的认证方式。术语无状态意味着客户端请求包含服务器处理客户端请求所需的所有信息。
1) META 数据 - 资源表示应按照 Fielding himself. So you may consider to add related resources links in meta data.
驱动 HATEOAS2) Sync/Async - 这取决于 API 试图做什么。如果它调用一个长的 运行 进程,那么 Async API 是自然的选择。否则坚持使用 Sync API.
3) 状态通信 - stateless 是 REST 架构的约束之一。在请求之间,不应将客户端上下文存储在服务器上。客户端负责管理应用程序的状态。