ホームページ  >  記事  >  Java  >  API戻り値の標準化入門(コード例)

API戻り値の標準化入門(コード例)

不言
不言転載
2019-03-08 16:26:253836ブラウズ

この記事では、API の戻り値の標準化について紹介します (コード例)。一定の参考値があります。困っている友人は参考にしてください。お役に立てれば幸いです。

API 戻り値の標準化

{"status":200,"message":"操作成功","data":"{\"id\":1,\"name\":\"张三\"}"}

戻りオブジェクトのカプセル化

オブジェクトは、base.util.ResponseUtils 型でカプセル化され、戻り値は標準の ResponseEntity オブジェクトで、戻り本体
は再カプセル化され、主にステータス、メッセージ、データで構成されます。戻りメソッドは ok および okMes​​sage です。
が実際にメッセージを返し、オブジェクトを必要としない場合は、 、okMes​​sage を使用することを選択でき、それ以外の場合は OK メソッドを使用します。

カプセル化された戻りオブジェクト:

  @Builder
  @Getter
  @NoArgsConstructor
  @AllArgsConstructor
  static class ResponseBody {

    private int status;
    private String message;
    private Object data;
  }

httpError とカプセル化された httpError

http エラーには多くの種類があり、基本的に 400 ~ 500 のコードとして設定できます。たとえば、クライアント パラメータの問題が 400-bad request の場合、認証がない場合は 401-Unauthorized、認証はあるが対応する許可がない場合は 403-Forbidden、要求された
リソースが次の場合は 403-Forbidden になります。見つからない場合は 404-Not Found となり、リクエスト メソッドが間違っています (メソッドは post (get を使用してリクエストを開始した場合)、結果は 405- Method Not allowed などになります。

    #標準の http 応答ステータス コードを使用します
  •   @GetMapping(GET_HTTP_ERROR)
      ResponseEntity<?> getHttpError() throws IOException {
        return ResponseEntity.badRequest().build();
      }
      @Test
      public void getHttpError() throws Exception {
          mockMvc
              .perform(
                  get(LindDemo.GET_HTTP_ERROR)
                      .accept(MediaType.APPLICATION_JSON_UTF8))
              .andExpect(status().is(400));
      
       }
応答の結果

MockHttpServletResponse:
           Status = 400
    Error message = null
          Headers = {}
     Content type = null
             Body = 
    Forwarded URL = null
   Redirected URL = null
          Cookies = []

    カプセル化されたステータス ステータス コードを使用します
  • #
      @GetMapping(GET_ERROR)
      ResponseEntity<?> getError() throws IOException {
        return ResponseUtils.badRequest("传入的参数非法!");
      }
      
      @Test
        public void getError() throws Exception {
          mockMvc
              .perform(
                  get(LindDemo.GET_ERROR)
                      .accept(MediaType.APPLICATION_JSON_UTF8))
              .andExpect(status().isOk());
      
        }
  • 応答の結果
MockHttpServletResponse:
           Status = 200
    Error message = null
          Headers = {Content-Type=[application/json;charset=UTF-8]}
     Content type = application/json;charset=UTF-8
             Body = {"status":400,"message":"传入的参数非法!","data":{}}
    Forwarded URL = null
   Redirected URL = null
          Cookies = []

上記の応答結果からわかるように、カプセル化したリクエスト httpcode は依然として 200 ですが、リクエスト エラー 400 ステータス コードが body

オブジェクトに書き込まれます。現在はこの方式が多く使われており、一部のサードパーティインターフェースではこの方式が採用されており、対応する応答仕様が規定されています。


まとめ

実際には、両方のレスポンスボディに問題はありません。重要なのは、開発間でルールを決定し、プロジェクト内で両方を使用しないことです。

以上がAPI戻り値の標準化入門(コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。