search
HomeWeb Front-endJS TutorialIntroduction to restful interface specification and postman debugging tool

I recently learned the RESTful interface specification and introduced it using Postman. Here I will record the relevant RESTful interface specification:

1. What is RESTful?

REST: is an architectural style for web services; uses widely popular standards and protocols such as HTTP, URI, XML, JSON, HTML, etc.; lightweight, cross-platform, and cross-language architectural design ; It is a design style, not a standard, but an idea.

RESTful: The corresponding Chinese is rest-style; Restful web service is a common rest application, which is a web service that complies with rest style; rest-style web service is a kind of ROA (The Resource- Oriented Architecture) [Recommended: web front-end]

The essence of RESTful is a software architecture style, the core is resource-oriented, and the problems it solves:

  • Reduce the complexity of development
  • Improve the scalability of the system

2. The difference between SOAP and REST:
SOAP ( Simple Object Access Protocol): A protocol specification for exchanging data. It is a lightweight, simple, XML-based protocol.
REST (Representational State Transfer): A software architecture style that can reduce the complexity of development and improve the scalability of the system.

Efficiency and ease of use:
SOAP: Due to the continuous expansion of the content of its own protocol due to various needs, the performance of SOAP processing has improved. decline. At the same time, the ease of use and learning costs have also increased.
RESTful: Due to its resource-oriented interface design and operation abstraction, it simplifies developers' bad designs and also makes the most of the original application protocol design concept of HTTP.

Security:
RESTful is very suitable for resource-based service interfaces. It is also particularly suitable for high efficiency requirements but not high security requirements. scene. The maturity of
SOAP can bring convenience to the interface design that needs to be provided for multiple development languages ​​and has higher security requirements.
In short:
Security: SOAP will be better than REST;
Efficiency and ease of use: REST is better;
Maturity Degree: Generally speaking, SOAP is superior to REST in terms of maturity.

3. How to design RESTful API:
Resource path: In RESTful architecture, each URL represents a resource, Therefore, the URL cannot have verbs, only nouns. Generally speaking, nouns in APIs should be plural.

HTTP verb: Operations on resources (CURD) are represented by HTTP verbs (predicates).

  • GET: Get the resource (one or more items) from the server.
  • POST: Create a new resource on the server.
  • PUT: Update resources on the server (the client provides the changed complete resources).
  • DELETE: Delete resources from the server.

Let’s take the zoo as an example (including information about various animals and employees):

https://api.example.com/v1/zoos //动物园资源
https://api.example.com/v1/animals //动物资源
https://api.example.com/v1/employees //雇员资源
  • POST /zoos: Create a new zoo
  • GET /zoos/ID: Get information about a specified zoo
  • PUT /zoos/ID: Update information about a specified zoo
  • DELETE /zoos/D: Delete a zoo

Filter information:

  • ?limit=10: Specify the number of returned records
  • ? offset=10: Specifies the starting position of the returned record.
  • ?page=2&per_page=100: Specify the page and the number of records on each page.
  • ?sortby=name&order=asc: Specify which attribute the returned results are sorted by, and the sorting order.
  • ?animal_type_id=1: Specify filter conditions

Status code :

  • 200 (OK ) - If an existing resource has been changed
  • 201 ( created ) - If a new resource is created
  • 202 ( accepted ) - The processing request has been accepted but has not been completed (asynchronous processing)
  • 301 (Moved Permanently)-The URI of the resource is updated
  • 303 (See Other)-Others (such as load balancing)
  • 400 (bad request)-Refers to a bad request
  • 404 (not found )-The resource does not exist
  • 406 (not acceptable)-The server does not support the required representation
  • 409 (conflict)-General conflict
  • 412 (Precondition Failed)-The precondition failed (such as a conflict when executing condition update)
  • 415 (unsupported media type)-The received representation is not supported
  • 500 (internal server error ) - Generic error response
  • 503 (Service Unavailable ) - The service is currently unable to process the request

Error handling :
The returned information uses error as the key name and error information as the key value.

{
 error: “Invalid API key”
 }

Return result

  • GET /collection:返回资源对象的列表(数组)
  • GET /collection/resource:返回单个资源对象
  • POST /collection:返回新生成的资源对象
  • PUT /collection/resource:返回完整的资源对象
  • PATCH /collection/resource:返回完整的资源对象
  • DELETE /collection/resource:返回一个空文档

4.REST风格的接口测试流程
我们直接用一张图来介绍吧
Introduction to restful interface specification and postman debugging tool5.代码编写和Postman测试
工具:idea,mysql数据库,Postman
数据库表数据:
Introduction to restful interface specification and postman debugging tool
实体类:

@Data
@ApiModel("用户实体类")
public class User extends Model<user> implements Serializable {
    @ApiModelProperty("用户id")
    @NotNull(message = "用户id不能为空")
    private Integer id;

    @NotBlank(message = "用户名不能为空")
    @ApiModelProperty("用户名")
    private String name;

    @Min(1)
    @Max(100)
    @ApiModelProperty("用户年龄")
    private Integer age;

    @NotEmpty(message = "邮箱不能为空")
    @ApiModelProperty("用户邮箱")
    @Email
    private String email;

    @ApiModelProperty("0:未删除 1:已删除")
    @TableLogic
    private Integer deleted;

    @NotBlank(message = "密码不能为空")
    @ApiModelProperty("用户密码")
    private String password;
    }</user>

controller层的代码(service层省略):

@Api(tags = "用户管理")
@RestController
@RequestMapping("/MyWebsite/user")
public class UserController {
    @Autowired
    private UserServiceImpl userServiceimpl;

   @ApiOperation(value = "新增用户")
    @PostMapping
    public int insertUser(User user) {

        System.out.println("新增成功");

        return userServiceimpl.insertUser(user);
    }

    @ApiOperation(value = "修改用户信息")
    @PutMapping
    public void updateUser(@RequestBody @Valid User user) {

        userServiceimpl.updateUser(user);

        System.out.println("修改成功");
    }

    @ApiOperation(value = "删除用户", notes = "根据id删除用户")
    @DeleteMapping("/{id}")
    public int deleteUser(@ApiParam("用户id") @PathVariable @Valid Integer id) {

        System.out.println("删除成功");

        return userServiceimpl.deleteUser(id);
    }

    @ApiOperation(value = "查询所有用户")
    @GetMapping
    public List<user> allUser() {

        System.out.println("查询成功");

        return userServiceimpl.allUser();
    }

    @ApiOperation(value = "id查询用户")
    @GetMapping("/{id}")
    public User selectById(@PathVariable("id") String id) {
        return userServiceimpl.selectById(id);
    }
}</user>

利用Postman测试(url路径要对应上):
查询所有用户:http://localhost:8081/MyWebsite/user
Header:Content-Type=application/json
Body:空
Introduction to restful interface specification and postman debugging tool
查询成功!
根据id查询:
Introduction to restful interface specification and postman debugging tool
查询成功!
新增用户
Introduction to restful interface specification and postman debugging tool
查看数据库新增成功!
Introduction to restful interface specification and postman debugging tool
修改用户信息(修改id为7的姓名和年龄):
Introduction to restful interface specification and postman debugging tool
查看数据库修改成功!
Introduction to restful interface specification and postman debugging tool
根据id删除用户
Introduction to restful interface specification and postman debugging tool
查看数据库删除成功!(deleted=1)
可能你的是直接删除了整一条数据
Introduction to restful interface specification and postman debugging tool
当查询或更新或删除不存在的数据时(或者数据不合法),都是执行失败的
还有其他接口,例如删除所有等接口,这里不一一测试了
若有不正确的地方,欢迎指出。

The above is the detailed content of Introduction to restful interface specification and postman debugging tool. For more information, please follow other related articles on the PHP Chinese website!

Statement
This article is reproduced at:csdn. If there is any infringement, please contact admin@php.cn delete
Flask-RESTful和Swagger: Python web应用程序中构建RESTful API的最佳实践(第二部分)Flask-RESTful和Swagger: Python web应用程序中构建RESTful API的最佳实践(第二部分)Jun 17, 2023 am 10:39 AM

Flask-RESTful和Swagger:Pythonweb应用程序中构建RESTfulAPI的最佳实践(第二部分)在上一篇文章中,我们探讨了如何使用Flask-RESTful和Swagger来构建RESTfulAPI的最佳实践。我们介绍了Flask-RESTful框架的基础知识,并展示了如何使用Swagger来构建RESTfulAPI的文档。本

国产API管理神器 Apifox 好用吗?国产API管理神器 Apifox 好用吗?Jul 26, 2022 pm 08:44 PM

Apifox 是 API 文档、调试、Mock、测试一体化协作平台,定位Postman + Swagger + Mock + JMeter。通过一套系统、一份数据,解决多个系统之间的数据同步问题。只要定义好 API 文档,API 调试、API 数据 Mock、API 自动化测试就可以直接使用,无需再次定义;

Python Flask RESTful怎么使用Python Flask RESTful怎么使用Apr 29, 2023 pm 07:49 PM

一、RESTful概述REST(RepresentationalStateTransfer)风格是一种面向资源的Web应用程序设计风格,它遵循一些设计原则,使得Web应用程序具有良好的可读性、可扩展性和可维护性。下面我们来详细解释一下RESTful风格的各个方面:资源标识符:在RESTful风格中,每个资源都有一个唯一的标识符,通常是一个URL(UniformResourceLocator)。URL用于标识资源的位置,使得客户端可以使用HTTP协议进行访问。例如,一个简单的URL可以是:http

使用Django构建RESTful API使用Django构建RESTful APIJun 17, 2023 pm 09:29 PM

Django是一个Web框架,可以轻松地构建RESTfulAPI。RESTfulAPI是一种基于Web的架构,可以通过HTTP协议访问。在这篇文章中,我们将介绍如何使用Django来构建RESTfulAPI,包括如何使用DjangoREST框架来简化开发过程。安装Django首先,我们需要在本地安装Django。可以使用pip来安装Django,具体

使用Laravel进行RESTful API开发:构建现代化的Web服务使用Laravel进行RESTful API开发:构建现代化的Web服务Aug 13, 2023 pm 01:00 PM

使用Laravel进行RESTfulAPI开发:构建现代化的Web服务随着互联网的快速发展,Web服务的需求日益增加。而RESTfulAPI作为一种现代化的Web服务架构方式,具备轻量、灵活、易扩展的特点,因此在Web开发中得到了广泛应用。在本文中,我们将介绍如何使用Laravel框架来构建一个现代化的RESTfulAPI。Laravel是PHP语言中

使用PHP构建RESTful API的步骤使用PHP构建RESTful API的步骤Jun 17, 2023 pm 01:01 PM

随着互联网的发展和普及,Web应用程序和移动应用程序越来越普遍。这些应用程序需要与后端服务器进行通信,并获取或提交数据。在过去,常规的通信方式是使用SOAP(简单对象访问协议)或XML-RPC(XML远程过程调用)。然而,随着时间的推移,这些协议被认为过于笨重和复杂。现代应用程序需要更加轻巧和直接的API来进行通信。RESTfulAPI(表现层状态转化AP

Beego开发RESTful服务的最佳实践Beego开发RESTful服务的最佳实践Jun 23, 2023 am 11:04 AM

在当下信息技术不断创新的环境下,RESTful架构风靡于各种常用的WebAPI应用之中,成为了新兴的服务开发趋势。而Beego框架作为Golang中一款高性能、易扩展的Web框架,出于其高效、易用、灵活等优点,被广泛应用于RESTful服务的开发中。下文将从Beego开发RESTful服务的最佳实践的角度,为广大的开发者提供一些参考。一、路由设计在REST

如何使用Java开发一个基于RESTful的API如何使用Java开发一个基于RESTful的APISep 21, 2023 pm 03:53 PM

如何使用Java开发一个基于RESTful的APIRESTful是一种基于HTTP协议的架构风格,通过使用HTTP协议的GET、POST、PUT、DELETE等方法来实现对资源的操作。在Java开发中,可以使用一些框架来简化RESTfulAPI的开发过程,如SpringMVC、Jersey等。本文将向您详细介绍如何使用Java开发一个基于RESTful的

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!