首页 > 其他分享 >RESTful API

RESTful API

时间:2022-12-08 15:37:01浏览次数:39  
标签:状态 请求 URL 用户 API 服务器 RESTful

Restful API

Restful API 是一种互联网软件架构设计的设计规范,设计指南,设计风格和设计原则。

由于前后端分离,前后端通信为了有一个统一的机制,restful api作为制定接口标准的规范而产生了。

设计原则以及规范

  • 协议。API与用户的通信协议,总是使用HTTPs协议

  • 域名。应尽量将API部署在专用域名之下

  • 版本。应将API版本号放入URL中

  • 统一接口。对业务数据增删改查(CRUD),Restful用HTTP方法与对应。

    CRUD HTTP Methods
    Create(增) POST
    Read(查) GET
    Update(改) PUT
    Delete(删) DELETE
  • URL中只能有名词,不能出现动词。这是因为在REST要求对资源的操作由HTTP方法给出,而方法是由HTTP请求报文头部给出的,自然不需要在URL中暴露操作方式。资源名应该使用复数形式,使用users而不是user。

  • 状态码。服务器向用户返回的状态码和提示信息,常见的有以下一些

    状态码 提示信息
    200 ok-[GET]:服务器成功返回用户请求的数据,该操作是幂等的,就是无论你访问多少次都是一样的。
    201 CREATED-[POST/PUT/PATCH]: 用户新建或修改数据成功
    204 NO CONTENT-[DELETE]: 用户删除数据成功
    302 Found-[*]:临时重定向(请求的资源已被分配新的URL,希望用户本次使用新的URL)
    400 INVALID REQUEST-[POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或者修改数据的操作,该操作也是幂等的
    401 Unauthorized-[*]:表示用户没有权限(令牌、用户名、密码错误)
    403 Forbidden-[*]:表示用户得到授权(与401错误相对),但是访问是被禁止的
    404 NOT FOUND-[*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。简单说就是请求资源路径不存在。
    500 Internal Server Error-[*]:服务器在执行请求时发生错误
    503 Service Unavailable-[*]:服务器暂时处于超负载或是正在进行停机维护,现在无法处理请求
    状态码类别
    • 1XX(信息性状态码)表示接收的请求正在处理
    • 2XX(成功状态码)表示请求正常处理完毕
    • 3XX(重定向状态码)表示需要进行附加操作以完成请求
    • 4XX(客户端错误状态码)表示服务器无法处理请求
    • 5XX(服务器错误状态码)表示服务器处理请求出错
  • 错误处理。如果状态码是4XX,就应该向用户返回出错信息。返回的信息中将error作为键名,出错信息作为值即可。

RESTful API 的好处

  • 规范API设计
  • 增强API的可读性
  • 方便前后端协作

标签:状态,请求,URL,用户,API,服务器,RESTful
From: https://www.cnblogs.com/jianghao000/p/16966200.html

相关文章

  • Paddle Inference——基于Jetson AGX部署python API预测库
    系统环境JetPack4.3如果需要此镜像的同学可以在​​Jetson下载中心​​下载即可。安装PaddlePaddle有两种方式,因为官方有已经编译好的python3.6的whl,所以我们直接下载就好,......
  • Why is OpenAI API not supported in certain countries?
    WhyisOpenAIAPInotsupportedincertaincountries? HiOpenAICommunity!WhatisthecauseoftherestrictiontocertaincountriesofOpenAI?IfIhave......
  • 利用云服务提供商的免费证书,在服务器上发布https前端应用和WebAPI的应用
    我们如果要在服务器上发布https前端应用和WebAPI的应用,那么我们就需要用到https证书了。我们一般发布的应用的云服务器上,都会提供一定量的相关的免费证书(一般为20个)供我们......
  • 个人微信号API接口,微信机器人
    自定义的微信机器人,需求是可以自己批量添加好友、批量打标签等进行好友管理,社群管理需要自动聊天,自动回复,发朋友圈,转发语音,以及定时群发等,还可以提取聊天内容,进行数据汇总,......
  • WebAPI
     1.ASP.NETWebAPI是什么官方定义如下,强调两个关键点,即可以对接各种客户端(浏览器,移动设备),构建http服务的框架。NETWebAPI是一个框架,它使构建HTTP服务变得容易,这些......
  • apifox 自动登录示例 前置操作 模拟登录
     //第一步:点击「根目录-前置操作」//第二步,环境变量中设置LOGIN_USERNAME和LOGIN_PASSWORD//第三步:必须让后端忽略验证码之类的验证//定义发送登录接口请......
  • API 安全中的数据隐私保护步骤
    对于数据隐私或个人信息的保护,在业务实践中通常融入数据生命周期去考虑,将数据收集、存储、使用等环节需要满足的合规要求和安全保护措施分解到数据生命周期中进行具体落实。......
  • SpringMVC —— RESTful案例
    案例:基于RESTful页面数据交互         ......
  • python-requests接入API
    API接入1APIApplicationProgrammingInterface,应用程序编程接口,是软件之间信息交互的桥梁。  2聚合数据(数据获取网站)网址:https://www.juhe.cn/docs/index/o......
  • python_接入API获取疫情风险区域
    importrequestsfrompandasimportDataFrameurl="http://apis.juhe.cn/springTravel/risk?key=d35f34536565d5cfd9289e2c7e7b27db"#接入外部API获取疫情风险区域......