美文网首页
RESTful介绍及示例

RESTful介绍及示例

作者: 张明学 | 来源:发表于2020-07-19 18:07 被阅读0次

RESTful的中文含义是“ 表现层状态传递”,完整表述是:Resource Representational State Transfer,简写成REST,其中Resource被省略了。

RESTful介绍


RESTful资源-Resource

RESTful中的Resource是网络中的资源,如“文本”、“图片”。
资源我们用URI来表示,重点用于表示资源的位置。

RESTful表现层-Representational

RESTful表现层是针对Resource,一个Resource可以用多种表示形式,如:文本的表现形式可以是:txt,html,xml等,图片的表现形式可以是:png,jpg 等。

表现层我们用http协议中的content-type和accept来表示,重点用于表示表现形式
Accept:application/json http://localhost:8080/book/123 表示请求json格式的book
Accept:application/xml http://localhost:8080/book/123 表示请求xml格式的book

RESTful状态转化-State Transfer

RESTful状态转化又是针对表现层的,分别用http的GET、POST、PUT、DELETE方法

  • GET - 获取资源
    GET具有幂等性(每次HTTP请求相同的参数,相同的URL,产生的结果是相同的)

  • POST - 创建资源
    创建资源,如果资源已存在,返回http状态码201(Created),由于多次请求,每个创建资源的uri都不相同,因些不具有幂等性

  • PUT - 创建或更新资源
    如果资源不存在则创建资源,如果资源已存在则更新资源,多次请求,资源的uri都是相同,具有幂等性

  • DELETE - 删除资源
    具有幂等性

RESTful的URI设计示例


RESTful 的核心思想也是通过这些动词 + 名词完成对资源的操作与访问。

  • 动词:常用4个(GET,POST,PUT,DELETE,GET/PUT/DELETE 是幂等的)
  • 名词:就是表示一个资源或者服务,如 /user,/teacher
  • 动词+名词组合:
    资源 POST GET PUT DELETE
    /user 创建用户 查询所有用户 批量更新用户 删除所有用户
    /user/001 不被允许(405) 查询001这个用户 更新001这个用户 删除001这个用户

URL 层级

单一资源的URL按上的规则就可以很好定义,但资源的相互关联与嵌套很常见,查找id是12的用户的所有帖子:

GET  /posts?userId=12

版本

通过 URL 加版本的方式可以更好的发现资源,如:

POST /v2/users
GET /V1/users/12

过滤/分页/排序

过滤

GET /users/12/posts?state=published,/users/12/posts?published=true

分页

GET /users?pageNo=1&pageSize=20

排序

GET /users?sort=score_desc
资源命名约定和URI格式
  • 使用正斜杠(/)表示层次关系,如:
http://api.example.com/device-management
http://api.example.com/device-management/managed-devices
http://api.example.com/device-management/managed-devices/{id}
http://api.example.com/device-management/managed-devices/{id}/scripts
http://api.example.com/device-management/managed-devices/{id}/scripts/{id}
  • 不要在URI中使用尾部正斜杠,如
 http://api.example.com/device-management/managed-devices/
  • 使用连字符( - )来提高URI的可读性
http://api.example.com/inventory-management/managed-entities/{id}/install-script-location(推荐)
http://api.example.com/inventory-management/managedEntities/{id}/installScriptLocation 
  • 不要使用下划线(
    可以使用下划线代替连字符作为分隔符 - 下划线(
    )字符可能会在某些浏览器或屏幕中被部分遮挡或完全隐藏。为避免这种混淆,请使用连字符( - )而不是下划线(_)
http://api.example.com/inventory-management/managed-entities/{id}/install-script-location (推荐)
http://api.example.com/inventory_management/managed_entities/{id}/install_script_location
  • 在URI中使用小写字母
    方便时,URI路径中应始终首选小写字母。

参考:http://restful.p2hp.com

相关文章

  • RESTful介绍及示例

    RESTful的中文含义是“ 表现层状态传递”,完整表述是:Resource Representational S...

  • Elasticsearch数据增删改

    说明: 本文介绍 ElasticSearch 增加、删除、修改的使用示例。通过Restful 接口和 Post...

  • Spring+SpringMVC+MyBatis整合进阶篇(四)

    前言 前文《RESTful API实战笔记(接口设计及Java后端实现)》中介绍了RESTful中后端开发的实现,...

  • PHP - Hush Framework 学习记录

    PHP 目录 1、PHP 语言的介绍(面向对象,session,MVC 模式) 2、RESTful API 介绍及...

  • RESTful 的介绍及使用

    一、什么是URI 统一资源标识符,服务器上每一种资源,比如文档、图像、视频片段、程序都由一个通用资源标识符(Uni...

  • Laravel-RestfulAPI 资源控制器

    laravel里有基本控制器和控制器路由。不过我们这里介绍另一种风格--RESTFul。具体的RESTFul风格及...

  • vuex介绍及示例说明

    首先我们要明白vuex是什么? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管...

  • Django 框架之 Restful框架

    知识点 Restful API介绍 Django Restful Framework介绍 实例学习 简介 Rest...

  • RPC简介及框架选择

    简单介绍RPC协议及常见框架,对比传统restful api和RPC方式的优缺点。常见RPC框架,gRPC及序列化...

  • RPC简介及框架选择

    简单介绍RPC协议及常见框架,对比传统restful api和RPC方式的优缺点。常见RPC框架,gRPC及序列化...

网友评论

      本文标题:RESTful介绍及示例

      本文链接:https://www.haomeiwen.com/subject/iudrkktx.html