`
chenhua_1984
  • 浏览: 1252250 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

关于Restful API 的设计

    博客分类:
  • java
阅读更多

    Restful API的流行,很大程度上被当前的移动互联网所影响,在10年前,那个时候的网络应用程序,在跨系统的时候,很多时候采用的是WebService来实现,在当下,Restful的设计已经比交深入人心!特别是你的系统需要对外提供数据或者一些服务的时候,这里的对外,可以是 手机端(比如APP),也可以是PAD,桌面程序,也可以是网络上的一台需要服务的服务器等等 ,这个时候就可以采用Restful 的设计

 

    通常Resutful API 一般走HTTP 协议,为了更安全,我们会加上SSL,也就是 HTTPS ,比如

写道
https://www.resutful.com/api/names     or     http://www.resutful.com/api/names

 

    目前我们的写法是讲API作为我们系统功能的一部分,这种做法没有和 系统剥离,如果条件允许的话,尽量做到API  的域名独立

  

写道
http://api.restful.com/v1

 

   这里 有一个版本的参数,其实在设计API的实现,很多时候需要兼容底下的版本,所以需要标明版本号

 

写道
http://api.restful.com/v1/lings

 

    一个对外的地址通常代表一种资源,一般用名词复数。当其他人调用我们的API的时候,我们内部会有相应的动作,这些动作,主要是HTTP协议支持的一些动作 ,主要有下面几个

 

  • GET(SELECT):从服务器取出资源(一项或多项)。
  • POST(CREATE):在服务器新建一个资源。
  • PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
  • PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
  • DELETE(DELETE):从服务器删除资源。

    一般在动作后面需要参数,比如ID这样的:

 

 

写道
http://api.restful.com/v1/lings/delete?id=1

 

    Server动作执行完以后,我们需要返回结果,当然了,HTTP协议的状态码表示  请求的结果,这个还是要熟悉的,这个浏览器一般都能够监控渠道这个值 一些常用的状态码:

 

  • 200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)。
  • 201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。
  • 202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务)
  • 204 NO CONTENT - [DELETE]:用户删除数据成功。
  • 400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。
  • 401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)。
  • 403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。
  • 404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。
  • 406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。
  • 410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。
  • 422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。
  • 500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功

     Restful的API,一般流行返回JSON对象,客户端也比交方便解析,尽量不用返回XML,这样比交麻烦 ,除非不得已为之!

  

 

   

   

 

分享到:
评论

相关推荐

    RESTful API设计规范

    ### RESTful API设计规范详解 #### 一、RESTful简介 RESTful是一种广泛应用于Web服务的设计风格,全称为Representational State Transfer(表述性状态转移)。它并非一项具体的技术标准,而是一系列设计原则和约束...

    RESTful API 设计最佳实践

    以下是对RESTful API设计核心概念的详细解释: 1. **资源**:在RESTful API中,资源是系统中的核心实体,例如“tickets”或“messages”。资源通过唯一的URI(统一资源标识符)进行定位,使得客户端可以通过HTTP...

    RESTfulAPI设计:RESTfulAPI设计基础.docx

    RESTfulAPI设计:RESTfulAPI设计基础.docx

    SpringBoot+Mybatis+CXF框架,实现Restful api与 WebService api接口的大实验

    描述:本实验使用SpringBoot、Mybatis和CXF框架来实现Restful API和WebService API接口的大实验,涵盖了数据库设计、 Maven依赖管理、Restful API和WebService API的实现等方面。 标签:spring boot、mybatis、...

    RESTfulAPI设计:RESTfulAPI安全性设计.docx

    RESTfulAPI设计:RESTfulAPI安全性设计.docx

    RESTFul API 接口说明

    RESTful API 设计的核心理念在于其简洁性和直观性,通过定义一组简单的规则,使得开发人员能够快速地理解和使用这些接口。 #### 二、RESTful API 动词与方法 RESTful API 中最基础的概念之一是HTTP动词,它们代表...

    C#中的RESTful API设计:最佳实践与实现指南

    在当今的软件开发领域,RESTful API设计已成为构建可扩展、易于维护的Web服务的关键。C#作为一种强大的编程语言,结合ASP.NET Core框架,为设计和实现RESTful API提供了强大的支持。本文将探讨C#中RESTful API设计的...

    RestFul API 案例

    以上就是关于RESTful API的基本知识点,结合提供的"RestFul API.pptx"和"TEST.zip"文件,你可以深入学习具体的案例,了解如何设计和实现一个RESTful API。实践中,我们通常会用到如Spring Boot这样的框架来快速构建...

    RestfulApi服务端.zip

    RestfulApi服务端是现代Web应用开发中常用的一种设计风格,它基于HTTP协议,通过不同的HTTP方法(GET、POST、PUT、DELETE等)来实现资源的获取、创建、更新和删除操作,使得API接口更加清晰、简洁且易于理解。...

    RESTFUL API设置最佳实

    ### RESTful API 设计最佳实践 #### 一、引言 随着互联网技术的发展,Web 应用变得越来越复杂,为了支持这些应用的功能扩展和服务交互,API 的设计变得尤为重要。RESTful API 是一种基于 HTTP 协议的应用程序编程...

    c c++实现http服务 c c++开发restful api服务

    本文将深入探讨如何使用C和C++来实现HTTP服务,并开发RESTful API服务器。 首先,HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议,用于从万维网服务器传输超文本到本地浏览器。它是一个基于请求与...

    RESTful-API设计原则与规范

    ### RESTful-API设计原则与规范 #### 一、背景与基础概念 RESTful架构作为一种流行的互联网软件架构,因其结构清晰、符合标准、易于理解和扩展等特点而受到广泛青睐。REST(Representational State Transfer)的...

    Spring boot restful api demo

    RESTful API设计遵循以下原则: 1. **资源导向**:每个URL代表一个资源。 2. **无状态**:每次请求包含处理所需的所有信息,服务器不保存任何客户端状态。 3. **缓存**:允许客户端缓存响应以提高性能。 4. **统一...

    基于 RESTful 架构的API设计原则和规范.docx

    基于 RESTful 架构的 API 设计原则和规范 RESTful 架构是目前最流行的一种互联网软件架构,它结构清晰、符合标准、易于理解、扩展方便,基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。因此...

    C#中的RESTful API设计与实现

    本文将详细介绍如何在C#中设计和实现RESTful API,包括关键概念、设计原则、以及实际编码示例。 RESTful API在现代Web开发中扮演着核心角色。通过遵循REST原则和最佳实践,你可以设计和实现强大、灵活且易于维护的...

    Python语言开发RESTful API指南

    在当今信息技术飞速发展的时代,RESTful ...掌握这些知识点对于设计和实现一个健壮、安全且易于使用的RESTful API至关重要。此外,通过实践经验和持续学习,开发者可以不断提升在Python环境下开发RESTful API的能力。

    RESTful API设计基础知识

    本文将深入探讨RESTful API设计的基础知识,包括其核心概念、原则和最佳实践。 REST(Representational State Transfer,表现层状态转移)是一种架构风格,源于Web的原始设计原则,由Roy Fielding在他的博士论文中...

Global site tag (gtag.js) - Google Analytics