🛤️
OpenAPI から aspida 生成する際に URL に末尾のスラッシュが必要な時にやったこと
== 追記
コメントで教えていただいたのですが、 aspida 側で trailingSlash
なるオプションがあるので、こちら対応できそうです。
API が末尾にスラッシュつけないと動かない作りになっていたのですが、 openapi2aspida はどうも OpenAPI で末尾にスラッシュをつけていても自動的に無くしてしまうみたいです。
const api = <T>({ baseURL, fetch }: AspidaClient<T>) => {
const prefix = (baseURL === undefined ? '' : baseURL).replace(/\/$/, '')
// 末尾スラッシュが消えてしもうた
const PATH0 = '/hogehoge/slash_kieteru'
openapi2aspida ではそのような設定はなさそうなので、 API client でリクエスト送る時にスラッシュがなかったらスラッシュ追加するようにしようと思います。
import axios from "axios";
import axiosClient from "@aspida/axios";
axios.interceptors.request.use((config) => {
// 末尾にスラッシュなかったら追加
if (config.url && config.url[config.url.length - 1] !== "/") {
config.url += "/";
}
return config;
});
export const apiClient = axiosClient(axios, {
baseURL: process.env.REACT_APP_API_URL,
});
Discussion
openapiと組み合わせたことがないのですが、trailingSlashオプションで解決できるかもしれません
おお、正になオプションがありますね。
ちゃんと調べられておりませんでした、ありがとうございます!