Skip to content

GoのJSON

   

PocketBaseのユーザー作成をGoからHTTP叩いて実行しようとして、正常時とエラー時で戻ってくるJSONの形式が違っていた。

structを別々に用意して、Unmarshalでエラーになったらもう片方を使う?とか思ったけど、 golang は ゆるふわに JSON を扱えまぁす! — KaoriYaによると、interface{}(Go1.18以降ならanyか)を使えば、structを事前に用意する必要がないと。

が紹介されていて、指定の仕方がわかりやすそうな go-jsonpointer を使ってみることにした。

→その後、型変換が面倒に思えたので、指定した型で取り出せるgo-dproxyに乗り換えた。

そもそも、PocketBaseがエラーでもHTTPステータスコード200を返してくるのを変えるようにすれば良いのか??

→PocketBaseはエラー時ちゃんと400エラー返していた。200返していたのはリクエスト出した側のWEBアプリだった。