web接口

接口定义:

通过网络,规定了前后台信息交互规则的url链接,在web程序中也就是联系前台页面与后台数据库的媒介.

接口特点

  • url:长得像返回数据的url链接, 例如下面的搜索音乐

  • 请求方式:get、post、put、patch、delete

    • 采用get方式请求上方接口
  • 请求参数:json或xml格式的key-value类型数据

    • name: 童话镇
  • 响应结果:json或xml格式的数据

    • 上方请求参数的output参数值决定了响应数据的格式

      1. {
      2. code: 200,
      3. message: "成功!",
      4. result: [
      5. {
      6. author: "暗杠",
      7. link: "http://music.163.com/#/song?id=413829859",
      8. pic: "http://p2.music.126.net/xmYUW7yYS02Tc0McsGdKWA==/18345351510075909.jpg?param=300x300",
      9. type: "netease",
      10. title: "童话镇",
      11. lrc: "",
      12. songid: 413829859,
      13. url: "http://music.163.com/song/media/outer/ural?id=413829859.mp3"
      14. },
      15. {
      16. author: "李梓萌",
      17. link: "http://music.163.com/#/song?id=1302084285",
      18. pic: "http://p2.music.126.net/sGH_Ch3HCW_mE50va15Cgw==/109951163464298454.jpg?param=300x300",
      19. type: "netease",
      20. title: "童话镇 ",
      21. lrc: "",
      22. songid: 1302084285,
      23. url: "http://music.163.com/song/media/outer/url?id=1302084285.mp3"
      24. }
      25. ]
      26. }

restful接口规范

REST定义:

全称是 Resource Representational State Transfer:通俗来讲就是:资源在网络中以某种表现形式进行状态转移, 分解开来说明:

  • Resource:资源,即数据, 比如 newsfeed,friends等;
  • Representational:某种表现形式,比如用JSON,XML,JPEG等;
  • State Transfer:状态变化。通过HTTP动词实现。

Restful设计方法

Restful由于其面向资源接口设计以及操作抽象简化了开发者的不良设计,同时也最大限度的利用了Http最初的应用协议设计理念. restful的设计一般分为2部分来看, url请求部分和response响应部分.

url

  1. 用api关键字标识接口url

    api.baidu.com | www.baidu.com/api

  2. 接口数据安全性决定优先选择https协议

  3. 如果一个接口有多版本存在,需要在url中标识体现

    api.baidu.com/v1/... | api.baidu.com/v2/...

  4. 接口操作的数据源称之为 资源,在url中一般采用资源复数形式,一个接口可以概括对该资源的多种操作方式

    api.baidu.com/books | api.baidu.com/books/(pk)

  5. 请求方式有多种,用一个url处理如何保证不混乱 - 通过请求方式标识操作资源的方式

    1. """
    2. /books get 获取所有
    3. /books post 增加一个(多个)
    4. /books/(pk) delete 删除一个
    5. /books/(pk) put 整体更新一个
    6. /books/(pk) patch 局部更新一个
    7. """
  6. 资源往往涉及数据的各种操作方式 - 筛选、排序、限制

    api.baidu.com/books/?search=西&ordering=-price&limit=3

response

  1. http请求的响应会有响应状态码,接口用来返回操作的资源数据,可以拥有 操作数据结果的 状态码

    status 0(操作资源成功) 1(操作资源失败) 2(操作资源成功,但没匹配结果)

    注:资源状态码不像http状态码,一般都是后台与前台或是客户约定的
  2. 资源的状态码文字提示

    status ok '账号有误' '密码有误' '用户锁定'
  3. 资源本身

    results

    注:删除资源成功不做任何数据返回(返回空字符串)
  4. 不能直接放回的资源(子资源、图片、视频等资源),返回该资源的url链接

web接口与restful规范的更多相关文章

  1. 接口、RESTful规范、DRF

    接口 #接口:url连接,通过向链接发送不同的类型请求与参数得到相应的响应数据 #1.在视图书写处理请求的 视图函数 #2.在路由层为视图函数配置 url链接=>产生接口 #3.前台通过ajax ...

  2. Restful API 接口设计标准及规范

    Restful API 接口设计标准以及规范 RESTful概念 理解和评估以网络为基础的应用软件的架构设计,得到一个功能强.性能好.适宜通信的架构.REST指的是一组架构约束条件和原则." ...

  3. RESTful规范与django编写restful接口

    一.什么是RESTful规范 ①REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移” ②REST从资 ...

  4. 微服务接口设计(RESTful规范)

    微服务的接口设计(RESTful规范) 基本知识 URI:在RESTful架构中,每个URI代表一种资源 URI规范: 不用大写 用中杠-,不用下划线_ 路径中不能有动词,只能有名词 名词表示资源集合 ...

  5. RESTful 规范

    RESTful 规范 前言 rest 是一种软件架构风格,如果使用的是 rest 接口,那么就可以说你的接口是 restful. rest接口是围绕''资源''展开的,利用 HTTP 的协议,其实 r ...

  6. DjangoRestFramework 学习之restful规范 APIview 解析器组件 Postman等

    DjangoRestFramework学习一之restful规范.APIview.解析器组件.Postman等 本节目录 一 预备知识 二 restful规范 三 DRF的APIView和解析器组件 ...

  7. drf1 rest & restful规范

    web服务交互 我们在浏览器中能看到的每个网站,都是一个web服务.那么我们在提供每个web服务的时候,都需要前后端交互,前后端交互就一定有一些实现方案,我们通常叫web服务交互方案. 目前主流的三种 ...

  8. django rest framework restful 规范

    内容回顾: . django请求生命周期 -> 执行遵循wsgi协议的模块(socket服务端) -> 中间件(路由匹配) -> 视图函数(业务处理:ORM.模板渲染) -> ...

  9. day89 DjangoRsetFramework学习---restful规范,解析器组件,Postman等

     DjangoRsetFramework学习---restful规范,解析器组件,Postman等           本节目录 一 预备知识 二 restful规范 三 DRF的APIView和解析 ...

随机推荐

  1. 使用 EW 作Socks5代理

    简介: EarthWorm是一款用于开启 SOCKS v5 代理服务的工具,基于标准 C 开发,可提供多平台间的转接通讯,用于复杂网络环境下的数据转发. 主页: http://rootkiter.co ...

  2. python正则小结

    注意pattern字符串前要加r    原始字符串 元字符 .                匹配除换行的任意字符 ^            匹配开头 $            匹配结尾 表示重复   ...

  3. 如何在 Spring/Spring Boot 中做参数校验?你需要了解的都在这里!

    本文为作者原创,如需转载请在文首著名地址,公众号转载请申请开白. springboot-guide : 适合新手入门以及有经验的开发人员查阅的 Spring Boot 教程(业余时间维护中,欢迎一起维 ...

  4. Android开发中常用的设计模式

    首先需要说明的是,这篇博文灵感来自于 http://www.cnblogs.com/qianxudetianxia/archive/2011/07/29/2121547.html ,在这里,博主已经很 ...

  5. 简单搭建DNS服务器——bind

    1安装bind yum install -y bind bind-utils bind-chroot 2 修改配置文件 # grep '^[^#]' /etc/named.conf options { ...

  6. Comparable接口的实现和使用

    1.什么是Comparable接口 此接口强行对实现它的每个类的对象进行整体排序.此排序被称为该类的自然排序 ,类的 compareTo 方法被称为它的自然比较方法 .实现此接口的对象列表(和数组)可 ...

  7. 爬虫实践--CBA历年比赛数据

    闲来无聊,刚好有个朋友来问爬虫的事情,说起来了CBA这两年的比赛数据,做个分析,再来个大数据啥的.来了兴趣,果然搞起来,下面分享一下爬虫的思路. 1.选取数据源 这里我并不懂CBA,数据源选的是国内某 ...

  8. C# VII: 统计文本行数

    本文基于StackOverflow的以下问题收集整理而成. What is the fastest waty to count newlines in a large .NET string: htt ...

  9. PHP 7.4 新语法:箭头函数

    短闭包,也叫做箭头函数,是一种用 php 编写的短函数.当向函数中传递闭包时,这个功能是非常有用的,比如使用 array_map 或是 array_filter 函数时. 译者注:PHP7.4 计划于 ...

  10. [LC]111题 二叉树的最小深度 (递归)

    ①题目 给定一个二叉树,找出其最小深度. 最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 说明: 叶子节点是指没有子节点的节点. 示例: 给定二叉树 [3,9,20,null,null,15 ...