この記事では、API の戻り値の標準化について紹介します (コード例)。一定の参考値があります。困っている友人は参考にしてください。お役に立てれば幸いです。
API 戻り値の標準化
例
{"status":200,"message":"操作成功","data":"{\"id\":1,\"name\":\"张三\"}"}
オブジェクトは、base.util.ResponseUtils 型でカプセル化され、戻り値は標準の ResponseEntity オブジェクトで、戻り本体
は再カプセル化され、主にステータス、メッセージ、データで構成されます。戻りメソッドは ok および okMessage です。
が実際にメッセージを返し、オブジェクトを必要としない場合は、 、okMessage を使用することを選択でき、それ以外の場合は OK メソッドを使用します。
カプセル化された戻りオブジェクト:
@Builder @Getter @NoArgsConstructor @AllArgsConstructor static class ResponseBody { private int status; private String message; private Object data; }
http エラーには多くの種類があり、基本的に 400 ~ 500 のコードとして設定できます。たとえば、クライアント パラメータの問題が 400-bad request の場合、認証がない場合は 401-Unauthorized、認証はあるが対応する許可がない場合は 403-Forbidden、要求された
リソースが次の場合は 403-Forbidden になります。見つからない場合は 404-Not Found となり、リクエスト メソッドが間違っています (メソッドは post (get を使用してリクエストを開始した場合)、結果は 405- Method Not allowed などになります。
@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 サイトの他の関連記事を参照してください。