-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
提案: res.json
ではなく res
を返すオプション
#47
Comments
関連: #51 |
デバッグモードという概念で実装するのが良さそう |
export interface GetRequest {
endpoint: string;
contentId?: string;
queries?: MicroCMSQueries;
customRequestInit?: CustomRequestInit;
response?: Response;
} 上記のように、関数の戻り値にresponse用のプロパティーを追加するのはいかがでしょうか? |
[提案] 例:
{
"id": "abc",
"publishedAt": "...",
...
}
{
"status": 200,
"data": {
"id": "abc",
"publishedAt": "...",
...
}
} ↑をそのまま採用すると Aspida の |
私はHTTPステータスコードが欲しかったので、対応されるまでの間はfetchで取り直すことにしました。 const data = await client
.getListDetail({ endpoint, contentId })
.catch(async (error) => {
// refetch with fetch API to get HTTP status code
const { status } = await fetch(
`https://${serviceDomain}.microcms.io/api/v1/${endpoint}/${contentId}`,
{ headers: { "X-API-KEY": apiKey } },
);
switch (status) {
case 404:
return notFound();
default:
throw e;
}
}); |
私もステータスコードは取得したいですねー /**
* microCMSの例外をステータスコードに変換する関数
*
* microCMSのエラーオブジェクトのメッセージを解析し、ステータスコードを返却します。
*
* @param error
*/
function fromMicroCmsErrorToStatusCode(error: Error) {
// 必ずmicroCMSのエラーメッセージに含まれるテキストの正規表現
// source: https://github.com/microcmsio/microcms-js-sdk/blob/05a4efe79ce90932a6d7f33b262ff959ade88d4a/src/createClient.ts#L99
const regex = /status: (\d{3})/;
const statusCode = error.message.match(regex)?.at(1);
const parsedStatusCode = parseInt(statusCode ?? "");
// パースに失敗した場合は500
if (Number.isNaN(parsedStatusCode)) {
return STATUS_CODE.INTERNAL_SERVER_ERROR;
}
const status = pipe(
values(STATUS_CODE),
find((value) => value.STATUS === parsedStatusCode),
);
if (status) {
return status;
} else {
// 想定していない例外は全て500
return STATUS_CODE.INTERNAL_SERVER_ERROR;
}
} |
現状では
res.json
をした結果を返しており、レスポンスヘッダーなどを利用できない。これらを利用できるように、返却する値を変更するオプションを追加するのはどうだろうか?
The text was updated successfully, but these errors were encountered: