restful风格的接口介绍与应用

restful风格的接口介绍与应用

介绍

如今,开发 RESTful 风格的 API 是很流行的。REST 是一种使用了 HTTP (几乎总是) 的 IPC 机制。 资源是REST 中的一个关键概念,它通常表示业务对象,如客户、产品或这些业务对象的集合。REST 使用 HTTP动词(谓词)来操纵资源,这些资源通过 URL 引用。例如,GET 请求返回一个资源的表述形式,可能是 XML 文档或 JSON对象形式。POST 请求创建一个新资源,PUT 请求更新一个资源,DELETE请求删除一个资源。

引用 REST 创建者 Roy Fielding:
“REST 提供了一套架构约束,当应用作为整体时,其强调组件交互的可扩展性、接口的通用性、组件的独立部署以及中间组件,以减少交互延迟、实施安全性和封装传统系统。” — Roy Fielding,《架构风格与基于网络的软件架构设计》

使用基于 HTTP 的协议有很多好处:

  1. HTTP 简单易懂。
  2. 您可以使用浏览器扩展(如 Postman)来测试 HTTP API,或者使用 curl 命令行测试
  3. HTTPAPI(假设使用了 JSON 或其他一些文本格式)。 它直接支持请求/响应式通信。
  4. HTTP 属于防火墙友好。
  5. 它不需要中间代理,简化了系统架构。

使用 HTTP 也存在一些缺点:

  1. HTTP 仅直接支持请求/响应的交互方式。您可以使用 HTTP 进行通知,但服务器必须始终发送 HTTP 响应。
  2. 因为客户端和服务直接通信(没有一个中间者来缓冲消息),所以它们必须在交换期间都运行着。
  3. 客户端必须知道每个服务实例的位置(即 URL)。如第二章关于 API 网关所述,这是现代应用程序中的一个复杂问题。客户端必须使用服务发现机制来定位服务实例。

使用举例

  1. post
@RequestMapping(value = "order") 
public class OrderMainProcess implements IOrderMainProcess { 

@RequestMapping(value = "createOrder",method = RequestMethod.POST) 
public OutDTO<Object> create( @RequestBody RequestDto<RequestMessageDto<OrderItemDto>> allDto) {

通过postman   http://localhost:8771/order/createOrder

结果: 
{
    "ROOT": {
        "BODY": {
            "DETAIL_MSG": "OK",
            "OUT_DATA": {
                "ORDER_ID": "Ocd2924c868"
            },
            "RETURN_MSG": "OK",
            "USER_MSG": "OK"
        }
    }
}
  1. get
     //http://localhost:8081/user/45899
    @RequestMapping(value = "/user/{id}",method = RequestMethod.GET)
    public String getUserById(@PathVariable  int id) {

  1. put
@RequestMapping(value="/{id}",method=RequestMethod.PUT) 
 public ModelAndView update(@PathVariable Long id){ }

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值