2021.3.28 TIL

3055 ワード

REST-ful ???...?


ここのリンクで置換
  • https://sanghaklee.tistory.com/57
    どうですか.ガイドとしていいですね.理論ではないので、どうやって実現すればいいか教えてあげます.
    REST APIの角度から見るHTTP状態鼻
  • https://sanghaklee.tistory.com/61
  • GETとPOST

  • getでもpostでも、クライアントが>>サーバに送信するメッセージの性質を意味します.
  • GET:サーバー、これをくれませんか?>>読み出しデータ
  • POST:サーバー、これを直して/書きます>>データを書く
  •  @PostMapping("/create")
  • 行エラーの原因は
    :Postはもう何を書くかを暗示しています.createを2回書く必要はありません.
  • JSON無限参照を切断する方法

    @OneToMany(mappedBy = "question")
    @JsonManagedReference
    @OrderBy("id ASC")
    private List<Answer> answers;
    @ManyToOne
    @JoinColumn(foreignKey = @ForeignKey(name = "fk_answer_to_question"))
    @JsonBackReference
    private Question question;

    SpringでのControllerとRestControllerの違い


    ソース:https://mangkyu.tistory.com/49

    メインコントローラ(VIEW)

  • @Controllerは主にビューを返すために使用されます.
  • クライアントは、URI形式でWebサービスに要求を送信する.
  • マッピングされたHandlerとそのタイプを探しているDispatcherServiceletは、要求を中断します.
  • コントローラは要求を処理した後、応答をDispatcherServeretに返し、DispatcherServeretはビューをユーザーに返す.
  • @Controllerは、ViewResolverを使用してビューに戻り、ビューを参照してレンダリングして、ViewResolverの設定に合わせます.
  • データコントローラ(Data)

  • Spring MVCのコントローラで@ResponseBodyメソッドを使用してデータを返す
  • クライアントは、URI形式でWebサービスに要求を送信する.
  • マッピングされたHandlerとそのタイプを探しているDispatcherServiceletは、要求を中断します.
  • @ResponseBodyを使用して、クライアントにJson形式でデータを返します.
  • では、ViewResolverの代わりにHttpMessageConverterがデータ転送を行う
  • 単純文字列の場合、StringHttpMessageConverterは
  • を使用します.
    オブジェクトが
  • の場合は、MappingJackson 2 HttpMessageConverter、
  • を使用します.
  • 異なるデータ型のメッセージ変換器は、
  • を実行することができる.

    RESTコントローラ(REST)

  • Json形式でオブジェクトデータを返すコントローラ
  • クライアントは、URI形式でWebサービスに要求を送信する.
  • マッピングされたHandlerとそのタイプを探しているDispatcherServiceletは、要求を中断します.
  • RestControlは、要求を処理し、データを返す.
  • DTO(データを渡すオブジェクト)


    ソース:https://www.dazhuanlan.com/2020/05/21/5ec63e9a6c093/
    @NoArgsConstructor(access = AccessLevel.PROTECTED)
    public class MemberSignupRequest {
    
        @Valid
        private Email email;
        @Valid
        private Name name;
        @Valid
        private Password password;
    
        public Member toMember(){
            return new Member(email, password, name);
        }
    }

    HTTPを使用したHTTPステータスコード

  • 코드를 입력하세요