C#/.net API 什么是RESt?RESTFUL API 设计简述

Restful

一种架构设计风格,提供了设计原则(接口规范)和约束条件

方面讲解

  1. 概念方面:
    数据通信接口,用http协议通信,请求的响应值可以是xml,也可以是json
  2. 核心方面:
    基于HTTP上建立的一种接口规范,核心是资源;
  3. 协议方面:
    使用标准HTTP方法(get/put/post/delete)来抽象所有web系统的服务能力。并非个性化接口;
  4. 安全控制方面:
    代理服务器是可以定制安全策略,一般代码代理服务器的是根据(URI,HTTP Method)来决定HTTP请求是不是合法。Delete这个方法我们可以给予拒绝
  5. 缓存方面:
    RESt:刚好使用标准的HTTP方法,所以可以使用get进行缓存。
    SOAP相关:(而所有经过缓存服务器的SOAP消息总是http post,所以缓存服务器如果不解码SOAP消息体的话,根本没法知道这个请求是不是要拦截的,所以也决定了SOAP的缓存机制要比RESt复杂)
  6. 总结:
    REST系统的扩展能力高:统一接口抽象、代理服务器支持、缓存服务器支持等等,并且,伴随着网站引进的趋势,还有rest本身设计实现的简单性和强扩展性,后期极大有可能会成为Web服务的一个重要架构实践。

HTTP常用方法

GRT:获取资源
POST:新建资源
PUT:在服务器更新资源(向客户端提供更改后的所有资源)
PATCH:在服务器更新资源(向客户端提供更改的属性)
DELETE:删除资源
PATCH:一般不用,用PUT

CURD操作

简单资源URI:
GET /users -------------获取用户列表
GET /users/1 ----------获取ID为1的用户
POST /users ----------创建一个用户
PUT /users/1 ----------替换ID为1的用户
PATCH /users/1 ------修改ID为1的用户
DELETE /users/1 ----删除Id为1的用户

URL结尾是否应包含斜杠“/”

  1. 这是作为URL路径中处理中最重要的规则之一,REST API不允许一个尾部的斜杠。
  2. 许多Web组件和框架将平等对待一下两个url:
    http://api.demo.com/user
    http://api.demo.com/user/
    但是,实际上URL的每一个字符都会计入资源的唯一身份的识别中。
    两个不同的URL映射到两个不同的资源。
    因此RESTFUL API必须生成和传递精确的URL,不能容忍任何的客户端尝试不精确的URL资源定位。
  3. 用中杠“-”不用下杠“_”,防止看不见导致混淆、提高URL的可读性。
  4. 另外,要注意一点,URL路径对大小写敏感的,例如“/user”与”/User”是;两个接口,还是规定url小写比较好。

RESTful API关键点(状态码)

  1. 充分利用了heep语义-动词
  2. 状态码
    200:请求成功,返回相应的数据。
    3xx: 请求成功,但需要改变请求资源的方式。(比如会发生资源的永久重定向/单次重定向)
    4xx: 请求有错误,此类错误应由客户端负责。(比如说请求的参数不对或者是权限不足、资源不存在等)
    5xx: 服务器内部错误。(跟你客户端没关系,是我服务器内部发生的问题,比如经常遇到的服务器响应超时)

结语

  1. RESTFUL是一种网络应用程序的设计风格和开发方式,基于Http,可以使用XML格式定义或JSON格式定义。
  2. RESTFUL适用于移送互联网互联网厂商,作为业务使能接口的场景,实现第三方OTT调用移动网络资源的功能。
  3. 动作类型为新增、变更、删除所调用的资源;
  4. RESTFUL特点包括:每一个URL代表一种资源,客户端使用GET、POST、PUT、DELETE四个表示操作方式的动词,对服务端资源进行操作。

猜你喜欢

转载自blog.csdn.net/weixin_46484674/article/details/115366721