私は最近 RESTful インターフェイス仕様を学び、Postman を使用してそれを導入しました。ここでは、関連する RESTful インターフェイス仕様を記録します:
1. RESTful とは何ですか?
REST: Web サービスのアーキテクチャ スタイルです。HTTP、URI、XML、JSON、HTML などの広く普及している標準とプロトコルを使用し、軽量、クロスプラットフォーム、クロス言語です。建築デザイン ; 設計スタイルであり、標準ではなく、アイデアです。
RESTful: 対応する中国語はrest-styleです。Restful Webサービスは一般的なRestアプリケーションであり、Restスタイルに準拠するWebサービスです。Rest-style Webサービスは一種のROAです(リソース-指向アーキテクチャ) [推奨: Web フロントエンド ]
RESTful の本質はソフトウェア アーキテクチャ スタイルであり、コアはリソース指向であり、それによって解決される問題:
2. SOAP と REST の違い:
SOAP ( Simple Object Access Protocol): データ交換のためのプロトコル仕様で、軽量でシンプルな XML ベースのプロトコルです。
REST (Representational State Transfer): 開発の複雑さを軽減し、システムのスケーラビリティを向上させるソフトウェア アーキテクチャ スタイル。
効率性と使いやすさ:
SOAP: さまざまなニーズにより独自のプロトコルの内容が継続的に拡張されているため、SOAP のパフォーマンスは低下しています処理が向上しました。同時に、使いやすさと学習コストも増加しました。
RESTful: リソース指向のインターフェイス設計と操作の抽象化により、開発者の不適切な設計が簡素化され、HTTP の元のアプリケーション プロトコル設計概念も最大限に活用されます。
セキュリティ:
RESTful は、リソースベースのサービス インターフェイスに非常に適しています。また、高効率の要件には特に適していますが、高度なセキュリティ要件には適していません。 。
SOAP の成熟度は、複数の開発言語に提供する必要があり、より高いセキュリティ要件が必要なインターフェイス設計に利便性をもたらすことができます。
要約:
セキュリティ: SOAPはRESTよりも優れています;
効率性と使いやすさ: RESTは優れています;
成熟度程度: 一般に、成熟度の点では SOAP が REST よりも優れています。
3. RESTful API の設計方法:
リソース パス: RESTful アーキテクチャでは、各 URL がリソースを表します。 URL には動詞を含めることはできません。名詞のみを含めてください。一般に、API 内の名詞は複数形である必要があります。
HTTP 動詞: リソースに対する操作 (CURD) は、HTTP 動詞 (述語) によって表されます。
動物園を例に挙げてみましょう (さまざまな動物や従業員に関する情報を含む):
https://api.example.com/v1/zoos //动物园资源 https://api.example.com/v1/animals //动物资源 https://api.example.com/v1/employees //雇员资源
フィルター情報:
ステータスコード :
エラー処理 : 返される情報では、キー名として error が使用され、キー値としてエラー情報が使用されます。
{ error: “Invalid API key” }
結果を返す: 4.REST风格的接口测试流程: controller层的代码(service层省略): 利用Postman测试(url路径要对应上): 以上がRESTful インターフェイス仕様とポストマン デバッグ ツールの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
我们直接用一张图来介绍吧
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;
}
@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);
}
}
查询所有用户:http://localhost:8081/MyWebsite/user
Header:Content-Type=application/json
Body:空
查询成功!
根据id查询:
查询成功!
新增用户:
查看数据库新增成功!
修改用户信息(修改id为7的姓名和年龄):
查看数据库修改成功!
根据id删除用户:
查看数据库删除成功!(deleted=1)
可能你的是直接删除了整一条数据
当查询或更新或删除不存在的数据时(或者数据不合法),都是执行失败的
还有其他接口,例如删除所有等接口,这里不一一测试了
若有不正确的地方,欢迎指出。