@himenon/openapi-typescript-practice
v0.1.2
Published
OpenAPIを利用したAPI作成と、開発、リリースフローまでの仕組みづくりの練習
Downloads
11
Readme
TypeScript のプロジェクトで OpenAPI を利用するための手法の整理
| Registry | Status | | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- | | npm | |
Development
package.json scripts
{
"build": "build code and generate docs",
"cherry-pick": "Create Proxy Directories",
"clean": "clean up",
"copy:lib": "copy files to release directory",
"mock:server": "yarn run mock:server endpoints/Article/index.yml",
"tsc:build:cjs": "Generate Commonjs",
"tsc:build:esm": "Generate ES module",
"tsc:build:types": "Generate Type definition only",
"release:github:registry": "publish github for registry",
"release:npm:registry": "publish for npm registry"
}
Release
release version
yarn run lerna version --yes
Tools
Preview
Realtime
- https://marketplace.visualstudio.com/items?itemName=philosowaffle.openapi-designer
Docker
yarn run swagger:server
- https://hub.docker.com/r/swaggerapi/swagger-ui/
API Mock Server (PORT 4000)
yarn run prism:server
- https://www.npmjs.com/package/@stoplight/prism-cli
- https://github.com/stoplightio/prism
Static Document Generator
- https://github.com/Redocly/redoc
- https://www.npmjs.com/package/redoc-cli
Linter
- https://marketplace.visualstudio.com/items?itemName=mermade.openapi-lint
Formatter
Development Flow
src/
の yml を編集時、OpenApi Preview で確認- API MockServer を起動して、API の疎通確認
Build Flow
openapi-generator-cli
を利用して、dist/
以下にコードを自動生成
Trouble Shooting
openapi-generator
Cannot find name 'GlobalFetch'.
--additional-properties=typescriptThreePlus=true
- https://github.com/OpenAPITools/openapi-generator/issues/3869#issuecomment-584152932
Reference
WARN i.s.v.p.p.ExternalRefProcessor - A model for class Schema
- ディレクトリ名に予約語を利用している場合に発生する
- created
- updated
- deleted
- entity
- model
[main] WARN o.o.c.ignore.CodegenIgnoreProcessor - Output directory does not exist, or is inaccessible. No file (.openapi-generator-ignore) will be evaluated.
対応中
LICENSE
MIT