Rustful Api的一些相关知识
Web Api:
1、指使用Http协议并通过网络调用的Api ,需要通过URI来指定端点。2、就是一个web系统,通过URI与之进行交互。
MVC:
是一种用来构建UI的架构模式。1、松耦合。2、关注点分离。3、并不是一套完整的应用程序架构。
Controller继承于ControllerBase,多了视图支持等功能。
[ApiController]特性:
用于Controller。1、要求使用属性路由。2、自动使用Http400响应。3、推定参数的绑定源。4、Multipart/form-data请求推断。5、错误状态代码等详细信息。
Http方法:
- Post:创建/添加资源,参数在body,URI为:/api/companies
- Get:查询,可含查询字符串。URI为:/api/companies || /api/companies/{companyId}
- Delete:删除,可含查询字符串
- put:替换或创建,参数在body,URI为 /api/companies/{companyId}
- patch:部分修改,参数在body,URI为 /api/companies/{companyId}
Http状态码:
-
1XX:
-
2XX:
- 200(OK)成功
- 201(Created)成功创建资源
- 204(No Content)成功但不返回东西,比如说delete
-
3XX:
-
4XX:
- 400(Bad Request)api消费者发送到服务器的请求是错误的
- 401(Unauthorized)未授权
- 403(Forbidden)已授权但不能访问
- 404(Not Found)表示请求的资源找不到
- 405(Mothed Not Allowed)使用了错误的Http方法
- 406(Not Acceptable)请求的表述格式不被web api所支持,且api不会提供默认的表诉格式
- 客户端错误:
- 409(conflict)表示请求与服务器当前状态冲突,常出现在更新资源的情况下,用于处理并发问题,创建的资源在服务器上已存在也可以使用
- 415(Unsupported Media Type)与406相反,请求携带的类型格式不被api所支持。
- 422(Unprocessable entity)http协议的一部分,服务器懂得content type 但还是没办法处理,不能返回415所以只能返回这个
-
5XX:
- 500(Internal Server Error)服务器错误
-
补充:
- 404(Not Found):如果查询得到的数据为空,不应该表示为404,因为资源已经找到,而恰好找的资源是null而已,所以依旧应该返回200。
错误和故障:Errors vs Faults
Errors:
- 错误通常由api消费者引起。消费者请求时传递的数据是不合理的,这时候api就会正常地将其拒绝。
- Http 4XX错误
- 不会对api可用性有影响
Faults:
- 错误通常由api引起。针对一个合理的请求,api无法返回它的响应
- Http 5XX错误
- 对api可用性有影响