.net core3.1の頃のプログラムを.net6に移行したら…
APIで何故か400エラーが…!
クライアント(react)からaxiosでサーバー側(.net6)にPOSTリクエストするだけのなんてことない普通のAPIです。
API Testerで叩いてみる
返ってきたレスポンスを見てみます。
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"traceId": "00-xxxxxxxxxxxxxxxxxxxx-xxxxxxxxx-00",
"errors":{
"Text":[
"The Text field is required."
],
}
}
validation errors ばりでーしょんえらー??
なぜ??
The Text field is required.
必須入力にした覚えなんかないけども…
そういえば.net6になってからこれを良く見るぞ
string型もnull許容型にしないとダメよん!と指摘(怒られてはいない!笑)されるので
visual studio君のいう通りに直しておりました。
なるほど…「Null許容しない=必須やで」ということなのか
コンパイルエラーにはならないのが詰まるミソですねこれ。
Null許容型に変えてみる
修正前
public string Text { get; set; }
修正後
public string? Text { get; set; }
結果
200!OK!! !
なんてことない問題だったんですが、
なんでや!!と詰まったのでメモメモ。
もし同じ現象で困ってる方がいましたら、ちょっとでも参考になれば幸いです。