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アプリだった。