ターニングポイントさん!?

タグ: axios

axiosのgetメソッドでdateをISO8601形式にoffset付きで変換

◆結論

qs : [New] stringily: Add serializeDate option to customize Date serialization.

◆やりかた

  • dayjsyarn add(あるいはnpm install)
  • qsyarn add
  • ふつうTypeSciptを使ってるはずなので、「yarn add @types/qs」もする。
  • ここを眺めて、ある程度理解する。
  • 下の感じにする。

※ほぼJavaScriptと変わらんが、TypeScriptの書き方だよ。

baseAxios.interceptors.request.use((config) => {
  config.paramsSerializer = (params) => qs.stringify(params, {
    serializeDate: (date: Date) => dayjs(date).format('YYYY-MM-DDTHH:mm:ssZ') });
  return config;
})

axiosのgetメソッドでnestedなdataを投げる時のはなし

◆結論

「yarn add qs」しろ。typescript使ってる人は「yarn add @types/qs」しろ。yarn使ってないならnpm使え。帰れバカ。やめちまえ。

使い方は…普通にimportして使え。わかんないならやめちまえ。

★補足

・「hogehoge.com」は実際には「.env」に定義された環境変数だろう。何言ってるかわからないなら無視しろ。

・baseURLでテンプレート文字列使ってるのは、「/api」とかを付け足すため。

◆何が起きたか

ASP.NETでAPIサーバー立てて、HttpGetの口をはやした。画面からaxiosでもってnestedなデータをGETメソッドで送った。[FromQuery]Attributeを指定したclassにbindされなかった。nullになった。一筋の涙が頬を伝った。

Powered by WordPress & Theme by Anders Norén