Kotlin Springboot -- 파트 13 POST で決まった形の json を受け取れるようにする

Spring MVC와 Spring Webflux



https://zenn.dev/tm35/articles/05e74b6dd9f831#%40requestbody

Spring MVC로

Postmapping 와 関数の引数の RequestBody で中身を引き取れるらしい

https://www.baeldung.com/spring-mvc-async-vs-webflux

Spring Webflux는 이를 위한 책이 될 것입니다.
こちらではriaクtiveに書けるため, 非同期で完全に作れるのがmerittoらしい.

実装



@RestController
class PersonHandler(
// .....
  @PostMapping("/persons")
  fun postPerson(@RequestBody request: PersonJson): String {
    return request.toString()
  }

GET とおなじ URL で Postmapping を作る
rikestをちゃんと受け取れいているか確認する.
そのため、Usecase は一旦呼ばずに、richestを String にして返す.

data class PersonJson (
  val name: String,
  val age: Int,
)


PersonJson は以前の回で GET を作る時に、
ドメインカラ JSON 変換用にするために これを作成した.
POST로 JSON の受け取りのために同じものを利用する.

컬 -XPOST로 叩く



https://weblabo.oscasierra.net/curl-post/

実行は curl で叩く

curl -X POST -H "Content-Type: application/json" \
-d '{"name":"test", "age":20}' \
http://localhost:8080/persons


-H でヘッダーにデータの形式は json だよと教えて
-d 에서 json データを添える
最後に叩く URL の叩き先を書く.

{name=test, age=20}



すると、送ったものが key = value の形で返ってくる.

が入って送信されているのがわかる.

    println(request.name)


test



rikestのひとつひとつは reqeust.keyName でアクセスできる.


まとめ



Kotlin Springboot Spring MVC 에서
POST 리크에스트로 JSON 데이터를 受け取るには

@PostMapping("/your/url)" 


で/your/url に POST された時に動くHANDRA関数を書き

functionName(@RequestBody request: YourJsonType)


HANdra関数では, こうやって引数で予め決めておいた Key Value の JSON のrichestを受け取り

関数の処理内部で request.key で取り出して使うことができる.

좋은 웹페이지 즐겨찾기