今天给大家如何设计 Restful API,尽量给大家解释清楚,以便大家可以设计出更好的 Restful 风格的 API。有些人认为 Restful API 不够安全,可能您还没有更好地理解 Restful API 和安全加密技术。
设计会说话的 API要掌握一个新技术或概念,当然首先需要知道他是什么。我们先从他是概念下手。
什么是 RESTREST 即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding 博士在 2000 年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。这里是 REST 的概念,其中的关键词是软件架构的风格,第二个是适用于网络应用。
REST 的特性优点是因为他对 uri 进行了限制。用于定义资源。这样看起来比较容易理解。以下是 url 请求的限制。遵循下图中列出的规则才是 restful API。
说明客户端-服务器结构:通过一致的接口,只要客户端和服务器都遵从接口,服务端和客户端就可以并行开发。
无状态:客户端并不保存状态,所以我们每次请求都需要给服务端发送服务端所需的信息。表示客户端的状态。
可缓存:客户端可以缓存服务器返回的响应结果。每次请求客气端可以,例如获取一些额外信息—这些信息用于确定客户端的缓存是否过期。
分层的系统:在分层的系统中,可能有中间服务器来处理安全策略和缓存等相关问题
按需代码(可选):服务器可以通过传输可执行代码的方式来扩展或自定义客户端的行为。
统一接口:该约束是 REST 服务的基础,是客户端和服务器之间的桥梁。该约束又包含下面 4 个子约束。
说明资源标识符:每个资源都有各自的标识符。客户端在请求时需要指定该标识符。每个资源都有一个标识来表示。
通过资源的表达来操纵资源:客户端根据所得到的资源的表达中包含的信息来了解如何操纵资源,比如对资源进行修改或删除。
自描述的消息:每条消息都包含足够的信息来描述如何处理该资源。
超媒体作为应用状态的引擎(HATEOAS):在rest基础上的HATEOAS,返回的 json 里增加了相应的关系和url。好处是对简单的关系。可以通过url进一步处理。但对复杂的关系和操作,HATEOAS并不能胜任描述。
我们看以简单标准的示例
请求方式 动词和名词多用名词少用动词,表达动作(增删改查)这样动作通过 http 的 method 方法(GET,POST, PUT, DELETE) 来实现。但是也有些特殊情况也需要使用动词,下图有登录和登出。
什么时候用动词 如何命名不要混淆名词单数和复数,为了保持简单,只对所有资源使用名词的复数形式,命名规则可以为 CamelCase ,也可以为 Snake_case 规则来命名,保持一致就好。
举一个栗子感谢大家的支持,下面是我的公众号,请大家多多支持。
公众号
网友评论