RESTful インターフェイス仕様とポストマン デバッグ ツールの紹介

藏色散人
リリース: 2022-08-09 15:39:12
転載
1535 人が閲覧しました

私は最近 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 動詞 (述語) によって表されます。

  • 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 ( created ) - 新しいリソースが作成された場合
  • 202 ( accept ) - 処理要求は受け付けられましたが、完了していません (非同期)処理中)
  • 301 (永続的に移動) - リソースの URI が更新されました
  • 303 (「その他」を参照) - その他 (負荷分散など)
  • 400 (不正なリクエスト) )-不正なリクエストを参照しています
  • 404 (見つかりません)-リソースが存在しません
  • 406 (受け入れられません)-サーバーは必要な表現をサポートしていません
  • 409 (競合) - 一般的な競合
  • 412 (前提条件の失敗) - 前提条件が失敗しました (条件更新実行時の競合など)
  • #415 (サポートされていないメディア タイプ) - 受信した表現は、サポートされている
  • 500 (内部サーバー エラー) - 一般的なエラー応答
  • 503 (サービス利用不可) - サービスは現在リクエストを処理できません

エラー処理 : 返される情報では、キー名として error が使用され、キー値としてエラー情報が使用されます。

{
 error: “Invalid API key”
 }
ログイン後にコピー

結果を返す:

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

4.REST风格的接口测试流程
我们直接用一张图来介绍吧
RESTful インターフェイス仕様とポストマン デバッグ ツールの紹介5.代码编写和Postman测试
工具:idea,mysql数据库,Postman
数据库表数据:
RESTful インターフェイス仕様とポストマン デバッグ ツールの紹介
实体类:

@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:空
RESTful インターフェイス仕様とポストマン デバッグ ツールの紹介
查询成功!
根据id查询:
RESTful インターフェイス仕様とポストマン デバッグ ツールの紹介
查询成功!
新增用户
RESTful インターフェイス仕様とポストマン デバッグ ツールの紹介
查看数据库新增成功!
RESTful インターフェイス仕様とポストマン デバッグ ツールの紹介
修改用户信息(修改id为7的姓名和年龄):
RESTful インターフェイス仕様とポストマン デバッグ ツールの紹介
查看数据库修改成功!
RESTful インターフェイス仕様とポストマン デバッグ ツールの紹介
根据id删除用户
RESTful インターフェイス仕様とポストマン デバッグ ツールの紹介
查看数据库删除成功!(deleted=1)
可能你的是直接删除了整一条数据
RESTful インターフェイス仕様とポストマン デバッグ ツールの紹介
当查询或更新或删除不存在的数据时(或者数据不合法),都是执行失败的
还有其他接口,例如删除所有等接口,这里不一一测试了
若有不正确的地方,欢迎指出。

以上がRESTful インターフェイス仕様とポストマン デバッグ ツールの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!