1
Fork 0
mirror of https://github.com/thegeneralist01/twitter-openapi synced 2026-01-12 08:00:27 +01:00
twitter-openapi/README.md
ふぁ 521819c3c9
update
Signed-off-by: ふぁ <yuki@yuki0311.com>
2023-04-28 07:10:16 +09:00

84 lines
3.1 KiB
Markdown

# Twitter OpenAPI
Twitter OpenAPI(Swagger) specification
- [Dart](https://github.com/fa0311/twitter_openapi_dart)
- [React Documents](https://github.com/fa0311/twitter-openapi-docs)
## Usage
```shell
openapi-generator-cli generate -g <language> -i https://raw.githubusercontent.com/fa0311/twitter-openapi/main/dist/typescript/openapi-3.0.yaml -o ./generated
```
If the language supports variable-length arguments.
```shell
openapi-generator-cli generate -g <language> -i https://raw.githubusercontent.com/fa0311/twitter-openapi/main/dist/dart/openapi-3.0.yaml -o ./generated
```
Note that the license also inherits to the output.
## Contribute
- `src` *.yaml files should be written according to the [v3.0/schema.json](https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.0/schema.json)
- `dist` Do not rewrite this file as it is an automatically generated OpenAPI file.
### About build
- `src/openapi/**/*.yaml#/paths/*/*/parameters` will be overwritten by `src/config/parameters.yaml#/paths/~1parameters/*/parameters`
- This overwritten done before parsing yaml
- `src/openapi/**/*.yaml#/paths/*/*/requestBody` will be overwritten by `src/config/parameters.yaml#/paths/~1parameters/*/requestBody`
- This overwritten done before parsing yaml
- `src/openapi/**/*.yaml#/paths/*/get/responses/200/headers` will be overwritten by `src/config/headers.yaml#/components/headers`
- This overwritten done before parsing yaml
- Items enclosed in double brackets are placeholders
- `src/config/placeholder.json` replaces it
- If a placeholder is used in `src/config/**/*.yaml`, the pathname is added as a prefix
- This substitution is done before parsing the yaml
#### variable.json
It can be written as `{% if variable == value %}` `{ endif }`
| lang | description|
|---|---|
| docs | Outputs the most correct swagger syntax |
| typescript | Since it is difficult to handle default values with the typescript generator, we refer to `src/config/placeholder.json` and handle default values |
| dart | Basically the same as typescript, but headers are processed as parameters |
##### *_parameters = string
- This is defined in `src/config/parameters.yaml`
- Replace `src/config/placeholder.json` as an string
##### *_parameters = object
- This is defined in `src/config/parameters.yaml`
- Replace `src/config/placeholder.json` as an object
##### *_parameters = schema_content
- The schema automatically generated from the `src/config/placeholder.json` is replaced with `src/openapi/**/*.yaml#/paths/*/*/parameters`
- Some generators cannot handle it correctly because it generates the syntax introduced in swagger 3.0
- This is defined in `tools/build.py`
##### *_parameters = schema_parameters
- The schema automatically generated from the `src/config/placeholder.json` is replaced with `src/openapi/**/*.yaml#/paths/*/*/parameters`
##### *_parameters = schema_request_body
- The schema automatically generated from the `src/config/placeholder.json` is replaced with `src/openapi/**/*.yaml#/paths/*/*/requestBody`
#### command
```shell
python -V # Python 3.10.8
pip install -r requirements.txt
python tools/build.py
```
## License
[agpl-3.0](./LICENSE.txt)