Web API开发中的RPC和REST

目录

RPC

REST

REST优点

REST缺点

Restful如何传递参数

三种方式的不同语义

建议

Web API如何返回状态码

问题:

400观点

200观点

建议

ASP.NET Core中REST落地指南

实现建议

实现

注意


Web API开发有两种风格:面向过程(RPC)、面向REST

RPC

业务驱动,自然
“控制器/操作方法“的形式把服务器端的代码当成方法去调用。把HTTP当成传输数据的通道,不关心HTTP谓词。通过QueryString、请求报文体给服务器传递数据。状态码。比如:/Persons/GetAll、/Persons/GetById?id=8、/Persons/Update、/Persons/DeleteById/8;

REST

要求开发人员对REST原则更了解、并且有更多的设计能力。
按照HTTP的语义来使用HTTP协议:
1、URL用于资源的定位:/user/888、/user/888/orders;
2、HTTP谓词:GET、POST(新增)、PUT(整体更新)、DELETE、PATCH(局部更新)等;
3、什么是“幂等”,举例?DELETE、PUT、GET是幂等的,POST不幂等;
4、GET的响应可以被缓存;
5、服务器端要通过状态码来反映资源获取的结果:404、403(没有权限)、201(新增成功)。

REST优点

  1. 通过URL对资源定位,语义更清晰;
  2. 通过HTTP谓词表示不同的操作,接口自描述;
  3. 可以对GET、PUT、DELETE请求进行重试;
  4. 可以用GET请求做缓存;
  5. 通过HTTP状态码反映服务器端的处理结果,统一错误处理机制。
  6. 网关等可以分析请求处理结果。

REST缺点

  1. 真实系统中的资源非常复杂,很难清晰地进行资源的划分,对技术人员的业务和技术水平要求高。
  2. 不是所有的操作都能简单地对应到确定的HTTP谓词中。
  3. 系统的进化可能会改变幂等性。
  4. 通过URL进行资源定位不符合中文用户的习惯。
  5. HTTP状态码个数有限。
  6. 有些环节会篡改非200响应码的响应报文。
  7. 有的客户端不支持PUT、DELETE请求。

Restful如何传递参数

  1. URL:适合定位;长度限制
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值