Ich habe kürzlich von der RESTful-Schnittstellenspezifikation erfahren und sie mit Postman eingeführt. Ich werde die relevante RESTful-Schnittstellenspezifikation hier aufzeichnen:
1.
REST: Es handelt sich um einen Architekturstil für Webdienste; er verwendet weit verbreitete Standards und Protokolle wie HTTP, URI, XML, JSON, HTML usw.; es handelt sich um ein leichtes, plattformübergreifendes und sprachübergreifendes Architekturdesign ; es ist ein Design. Stil ist kein Standard, sondern eine Idee.
RESTful: Der entsprechende Chinesisch ist RESTful; Restful-Webdienst ist eine gängige REST-Anwendung, bei der es sich um einen Webdienst handelt, der dem REST-Stil entspricht; eine Art ROA (Ressourcenorientierte Architektur). ) [Empfehlung: Web-Frontend] Die Essenz von RESTful ist ein Software-Architekturstil. Der Kern ist ressourcenorientiert und löst die Probleme:
Reduzieren Sie die Komplexität der Entwicklung SOAP (Simple Object Access Protocol): Eine Protokollspezifikation für den Datenaustausch. Es handelt sich um ein leichtes, einfaches, XML-basiertes Protokoll. REST (Representational State Transfer): Ein Softwarearchitekturstil, der die Komplexität der Entwicklung reduzieren und die Skalierbarkeit des Systems verbessern kann.
: SOAP
: Aufgrund verschiedener Anforderungen, die den Inhalt des eigenen Protokolls immer weiter erweitern, ist die Leistung bei der SOAP-Verarbeitung zurückgegangen. Gleichzeitig sind auch die Benutzerfreundlichkeit und die Lernkosten gestiegen. RESTful
: Aufgrund seines ressourcenorientierten Schnittstellendesigns und der Betriebsabstraktion vereinfacht es schlechte Designs von Entwicklern und nutzt außerdem das ursprüngliche Anwendungsprotokoll-Designkonzept von HTTP maximal aus.
: RESTful
eignet sich sehr gut für ressourcenbasierte Serviceschnittstellen und eignet sich insbesondere für Szenarien, die eine hohe Effizienz, aber geringe Sicherheitsanforderungen erfordern. Die Reife von SOAP
kann das Schnittstellendesign vereinfachen, das für mehrere Entwicklungssprachen bereitgestellt werden muss und höhere Sicherheitsanforderungen stellt. Kurz gesagt:
Sicherheit
: SOAP ist besser als REST; Effizienz und Benutzerfreundlichkeit
: REST ist besser; Reife
: Im Allgemeinen ist SOAP in Bezug auf die Reife besser.
:
Ressourcenpfad: In der RESTful-Architektur stellt jede URL eine Ressource dar, sodass die URL keine Verben, sondern nur Substantive enthalten kann. Im Allgemeinen sollten Substantive in APIs im Plural stehen.
HTTP-Verb: Operationen auf Ressourcen (CURD) werden durch HTTP-Verben (Prädikate) dargestellt.
GET: Holen Sie sich die Ressource (ein oder mehrere Elemente) vom Server.https://api.example.com/v1/zoos //动物园资源 https://api.example.com/v1/animals //动物资源 https://api.example.com/v1/employees //雇员资源
?animal_type_id=1: Filterbedingungen angeben
303 (Siehe Andere) – Andere (z. B. Load Ausgleich) 400 (schlechte Anfrage) – Bezieht sich auf eine schlechte Anfrage
404 (nicht gefunden) – Die Ressource existiert nicht{ error: “Invalid API key” }
4.REST风格的接口测试流程:
我们直接用一张图来介绍吧
5.代码编写和Postman测试:
工具:idea,mysql数据库,Postman
数据库表数据:
实体类:
@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; }
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); } }
利用Postman测试(url路径要对应上):
查询所有用户:http://localhost:8081/MyWebsite/user
Header:Content-Type=application/json
Body:空
查询成功!
根据id查询:
查询成功!
新增用户:
查看数据库新增成功!
修改用户信息(修改id为7的姓名和年龄):
查看数据库修改成功!
根据id删除用户:
查看数据库删除成功!(deleted=1)
可能你的是直接删除了整一条数据
当查询或更新或删除不存在的数据时(或者数据不合法),都是执行失败的
还有其他接口,例如删除所有等接口,这里不一一测试了
若有不正确的地方,欢迎指出。
Das obige ist der detaillierte Inhalt vonEinführung in die Restful-Schnittstellenspezifikation und das Postman-Debugging-Tool. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!