最近 RESTful インターフェイス仕様を学習し、Postman を使用してそれを導入しました。 関連する RESTful インターフェイス仕様は次のとおりです。 1. RESTful とは何ですか?
REST: Web サービスのアーキテクチャ スタイルであり、HTTP、URI、XML、JSON、HTML などの広く普及している標準とプロトコルを使用し、軽量、クロスプラットフォーム、クロス言語のアーキテクチャ設計です。スタイルではなく、標準とはアイデアです。
RESTful: 対応する中国語は REST です。RESTful Web サービスは、REST スタイルに準拠した Web サービスである一般的な REST アプリケーションです。REST Web サービスは、ROA (The Resource-Oriented Architecture) (リソース指向アーキテクチャ) アーキテクチャの一種です。 ) 【おすすめ: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 動詞 (述語) で表されます。
GET: サーバーからリソース (1 つ以上の項目) を取得します。
POST: サーバー上に新しいリソースを作成します。
PUT: サーバー上のリソースを更新します (クライアントは、変更された完全なリソースを提供します)。
DELETE: サーバーからリソースを削除します。
動物園を例に考えてみましょう (さまざまな動物や従業員に関する情報も含まれます)。
https://api.example.com/v1/zoos //動物園のリソース https://api.example.com/v1/animals //動物リソース https://api.example.com/v1/employees //従業員リソース
POST /zoos: 新しい動物園を作成します
GET /zoos/ID: 指定した動物園の情報を取得します
PUT /zoos/ID: 指定した動物園の情報を更新します
DELETE /zoos/D: 動物園を削除します
フィルター情報:
?limit=10: 返されるレコードの数を指定します。
?offset=10: 返されるレコードの開始位置を指定します。
?page=2&per_page=100: どのページと、ページごとのレコード数を指定します。
?sortby=name&order=asc: 返された結果をソートする属性とソート順序を指定します。
?animal_type_id=1: フィルタ条件を指定します
ステータスコード:
200 (OK) - 既存のリソースが変更された場合
201 (作成) - 新しいリソースが作成された場合
202 (accepted) - 処理要求は受け付けられましたが、完了していません(非同期処理)
301 (永久に移動) - リソースの URI が更新されました
303 (その他を参照) - その他 (負荷分散など)
400 (不正なリクエスト) - 不正なリクエストを指します
404 (見つかりません) - リソースが存在しません
406 (受け入れられません) - サーバーは必要な表現をサポートしていません
409 (競合) - 一般的な競合
412 (Precondition Failed) - 前提条件が失敗しました (条件更新実行時の競合など)
415 (サポートされていないメディア タイプ) - 受信した表現はサポートされていません
500 (内部サーバーエラー) - 一般的なエラー応答
503 (サービスを利用できません) - サービスは現在リクエストを処理できません
エラー処理:
返される情報では、キー名としてエラーが使用され、キー値としてエラー情報が使用されます。
{ エラー: 「無効な API キー」 }
返される結果:
GET /collection: リソース オブジェクトのリスト (配列) を返します。
GET /collection/resource: 単一のリソース オブジェクトを返します。
POST /collection: 新しく生成されたリソース オブジェクトを返します。
PUT /collection/resource: 完全なリソース オブジェクトを返します。
PATCH /collection/resource: 完全なリソース オブジェクトを返します。
DELETE /collection/resource: 空のドキュメントを返します。
4.REST スタイルのインターフェイス テスト プロセス:
さっそく画像とともにご紹介しましょう。
5. コード作成と Postman テスト:
ツール: アイデア、mysql データベース、Postman
データベーステーブルのデータ:
エンティティクラス:
フロントエンド (vue) マスタリーコースへのエントリー: ラーニングに入る
@データ @ApiModel("ユーザー エンティティ クラス") public class User extends Model<User> 実装 Serializable { @ApiModelProperty("ユーザーID") @NotNull(メッセージ = "ユーザー ID を空にすることはできません") プライベート整数 ID; @NotBlank(メッセージ = "ユーザー名を空白にすることはできません") @ApiModelProperty("ユーザー名") プライベート文字列名。 @分(1) @マックス(100) @ApiModelProperty("ユーザーの年齢") プライベート整数の年齢。 @NotEmpty(メッセージ = "メールボックスを空にすることはできません") @ApiModelProperty("ユーザーのメールアドレス") @メール プライベート文字列電子メール。 @ApiModelProperty("0:削除されていない 1:削除された") @TableLogic プライベート整数が削除されました。 @NotBlank(メッセージ = "パスワードを空白にすることはできません") @ApiModelProperty("ユーザーパスワード") プライベート文字列パスワード。 }
コントローラー層のコード (サービス層は省略):
@Api(タグ = "ユーザー管理") @RestController @RequestMapping("/MyWebsite/user") パブリック クラス UserController { @Autowired プライベートUserServiceImpl userServiceimpl; @ApiOperation(値 = "新規ユーザー") @PostMapping public int insertUser(ユーザー user) { System.out.println("追加に成功しました"); 戻り userServiceimpl.insertUser(user); } @ApiOperation(value = "ユーザー情報の変更") @PutMapping public void updateUser(@RequestBody @Valid User user) { userServiceimpl.updateUser(user); System.out.println("変更が成功しました"); } @ApiOperation(value = "ユーザーを削除"、メモ = "ID に基づいてユーザーを削除") @DeleteMapping("/{id}") public int deleteUser(@ApiParam("ユーザー ID") @PathVariable @Valid Integer id) { System.out.println("削除に成功しました"); userServiceimpl.deleteUser(id) を返します; } @ApiOperation(value = "すべてのユーザーをクエリ") @GetMapping public List<User> allUser() { System.out.println("クエリが成功しました"); 戻り userServiceimpl.allUser(); } @ApiOperation(value = "id クエリ ユーザー") @GetMapping("/{id}") public User selectById(@PathVariable("id") String id) { userServiceimpl.selectById(id) を返します。 } }
Postman を使用してテストします (URL パスが対応している必要があります)。
すべてのユーザーのクエリ: http://localhost:8081/MyWebsite/user
ヘッダー: Content-Type=application/json
本体:空
クエリが成功しました!
ID に基づいたクエリ:
クエリが成功しました!
新しいユーザーを追加します:
データベースが正常に追加されたことを確認してください。
ユーザー情報を変更します(ID 7 で名前と年齢を変更します):
データベースの変更が成功したことを確認してください。
id に基づいてユーザーを削除します。
データベースが正常に削除されたことを確認してください。 (削除済み=1)
データ全体を直接削除した可能性があります
存在しないデータ (またはデータが不正な場合) をクエリまたは更新または削除すると、実行が失敗します。すべてのインターフェイスを削除するなど、ここでは 1 つずつテストしていません。それらを指摘してください。
以上、Restfulインターフェース仕様とPostmanデバッグツールの詳細紹介でした!