再構成-REST API

4336 ワード

#理由の再構築


  • プロジェクトを始めたばかりの頃、REST APIが存在することを知りませんでした.
    URLはただのパスだと思いますので、REST API形式のURLに再パッケージしたいと思います.

  • もちろん、REST APIの形でURLを使うのはREST APIではありません.

  • 詳細については、次のリンクを参照してください.

  • そんなREST APIでいいですか?

  • 現実ではそれが難しい.しかし、URLは重要だと思います.
    これでもイメージを再構築したい
  • #ルール#ルール#


  • リソースはURLであり、リソースの動作はhttpメソッドである.

  • 名詞

  • 単数ではなく複数を使用

  • スラッシュ区切り記号は、リソース間の階層関係を表すために使用されます.
  • はまずこの種目で守りたくない.
    それをしたいなら、可読性が下がると思います.
    これは、後でチーム内のルールに従う必要があります.

  • キャラメルボックスではなくダッシュ
  • #例

  • Commit Link
  • 改造前

  • コメントの表示
  • HTTP Method : GET
  • URL :/comment/{postId}
  • コメントの生成
  • HTTP Method : POST
  • URL :/comment/create
  • コメントの修正
  • HTTP Method : POST
  • URL :/comment/update
  • コメントの削除
  • HTTP Method : POST
  • URL :/comment/delete
  • 改造後

  • コメントの表示
  • HTTP Method : GET
  • URL :/comments/{postId}
  • コメントの生成
  • HTTP Method : POST
  • URL :/comments
  • コメントの修正
  • HTTP Method : DELETE
  • URL :/comments
  • コメントの削除
  • HTTP Method : PATCH
  • URL :/comments
  • formラベルでput、patch、deleteメソッドを使用する

  • フォームラベルは基本的にGET、POSTのみをサポートします.
    他のHTTPメソッドを使用するためには、HiddenHttpMethodFilterをbeanとして登録する必要がある.
  • 1.HiddenHttpMethodFilter空登録

    @Configuration
    public class SpringConfig {
        
    		...
    
        @Bean
        public HiddenHttpMethodFilter httpMethodFilter() {
            HiddenHttpMethodFilter hiddenHttpMethodFilter = new HiddenHttpMethodFilter();
            return hiddenHttpMethodFilter;
        }
    }

    2.inputタグの追加

    <input type="hidden" name="_method" value="PATCH"/>
    <input type="hidden" name="_method" value="DELETE"/>
    <input type="hidden" name="_method" value="PUT"/>