1

我是Android开发人员,同时也具有RESTful API开发的一些知识。目前我正在使用DotNet Web API构建API。一切工作正常,但我仍然关心设计。RESTful API最佳实践

现在我最关心的是响应的元数据究竟应该是什么,就像我可以添加除“响应代码”和“响应消息”之外的其他有用元素。

对我来说第二个问题是,如果请求是异步的或查询或两者兼而有之。

最后一个问题是我应该使用什么技术来进行诸如JWT或基本身份验证等无状态通信。

回答

1

首先,您应该阅读Roy Thomas Fielding的Architectural Styles and the Design of Network-based Software Architectures的第5章。您将首先了解REST的架构约束,元素和视图。

对我来说,核心问题是现在究竟应该像什么其他有用的元素,我可以从“二维码”和“响应消息”添加除了响应的元数据。

REST的一个架构元素是Representations。表示法允许客户解释响应。 RESTful HTTP表示由MIME类型实现。欲了解更多信息,请参阅[2]。 你应该考虑的其他方面是URI,支持的HTTP方法,URL参数和消息体。

第二个问题是,如果请求是异步或查询,或者两者兼而有之。

REST的一个架构约束是客户端 - 服务器架构风格。因此,您的服务器应该处理并发请求,以一次处理多个客户端请求。如果查询,方法或函数异步处理对于RESTful无关紧要。

而最后值得关注的是,我应该用什么技术,使像智威汤逊或基本身份验证状态的通信等

智威汤逊和基本的认证都是无国籍身份验证方法。术语无状态意味着客户端请求包含服务器处理客户端请求所需的所有信息。

0

1)META数据 - 资源表示应该是自己根据Fielding驱动的HATEOAS。所以你可以考虑添加相关资源links in meta data

2)同步/异步 - 它取决于API试图做什么。如果它调用一个长时间运行的进程,Async API是自然选择。否则坚持与Sync API。

3)有状态通信 - 正在stateless是REST体系结构的一个约束。请求之间不得在服务器上存储客户端上下文。客户负责管理应用程序的状态。