@aglyn/ shared- util- rest- api
帮助在 Next.js 中编写 JSON API 路由 : 两个Pages 路由器的一个响应信封(NextApiResponse)和App路由器(Web) Response),外加小中件和饼干的公用事业. 主要作为Aglyn自己的应用软件的构件发布;可用于任何需要同个信封的Next.js项目.
从Aglyn monorepo出版到npm. 随后的版本 语义版本。 。 。 .
安装
npm install @aglyn/shared-util-rest-api
同伴依赖 : next (单位:千美元)16.3.3) (中文(简体) ).
里面有什么东西
从套件根导出所有文件; 每个模块也可以达到 @aglyn/shared-util-rest-api/<file-name>。 。 。 .
那个信封, JsonResponse数字 :
type JsonResponse = {
error?: any
errorCode?: HttpRefCode
status?: HttpResponseStatus | true
statusCode?: HttpStatusCode
statusMessage?: string
data?: any
}
- App 路由器( R)
route.ts:appHandleJsonResponse(statusCode, options?), (中文(简体) ),appHandleJsonSuccess(data), (中文(简体) ),appHandleJsonError(error)- 每个返回一个Response。 。 。 . - 页面路由器 :
nextHandleJsonResponse(res, statusCode, options?), (中文(简体) ),nextHandleJsonSuccess(res, data), (中文(简体) ),nextHandleJsonError(res, error)- 每个写给一个NextApiResponse. . 两个家庭在电线上都装了同样的形状. 错误变体从error.code或者说error.statusCode(默认500)和来自error.message或者说error.statusMessage。 。 。 . createNewJsonResponse(statusCode, options?)- 一个赤裸的Response带有 JSON 内容类型,用于中间软件.httpRequestMethodMiddleware(allowed)- 一个next-api-middleware答405的中件,用于非允许的方法(OPTIONS总是通过).initializeMiddleware(middleware)- 包裹连接样式(req, res, next)在一个承诺的中间软件.requireHeader(name, key, handler)财务报告和审定财务报表withIdTokenHeader(handler)- 包裹一个 Pages 路由器处理器,并在标题时回答 400(id-token后者)缺失.getApiRequestCookie(name, request?)财务报告和审定财务报表setApiResponseCookie(res, name, value, options?)。 。 。 .setApiResponseCookie带maxAge对象值序列化为j:还有JSON.
使用量
// app/api/things/route.ts
import {
appHandleJsonError,
appHandleJsonSuccess,
} from '@aglyn/shared-util-rest-api'
export async function GET() {
try {
return appHandleJsonSuccess({ things: [] })
} catch (error) {
return appHandleJsonError(error)
}
}
请注意: appHandleJsonError 财务报告和审定财务报表 nextHandleJsonError 将错误对象本身包含在体内,所以将安全显示的错误传递给呼叫者.
怎样才合适
A 类 shared 软件包:通用,对Aglyn的模型一无所知。 共享软件包只能导入其他共享软件包; 此软件包取决于 @aglyn/shared-data-enums (状态代码和参考代码), @aglyn/shared-util-errors 财务报告和审定财务报表 @aglyn/shared-util-http. monrepo中没有任何其他库依赖于它; Aglyn的应用软件在他们的API路线中使用了它.
许可证
阿帕奇2.0 (英语). 资料来源: https://github.com/aglyn/aglyn/tree/main/libs/shared/util/rest-api 互联网档案馆的存檔,存档日期2014-12-21