Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/scottlogic/openapi-forge-javascript
⚒️ OpenAPI Forge generator for JavaScript clients
https://github.com/scottlogic/openapi-forge-javascript
Last synced: about 7 hours ago
JSON representation
⚒️ OpenAPI Forge generator for JavaScript clients
- Host: GitHub
- URL: https://github.com/scottlogic/openapi-forge-javascript
- Owner: ScottLogic
- Created: 2022-11-08T18:02:49.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-03-29T10:01:40.000Z (over 1 year ago)
- Last Synced: 2024-05-18T03:48:21.764Z (6 months ago)
- Language: JavaScript
- Size: 177 KB
- Stars: 1
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# OpenAPI Forge - JavaScript
This repository is the JavaScript generator for the [OpenAPI Forge](https://github.com/ScottLogic/openapi-forge), see that repository for usage instructions:
https://github.com/ScottLogic/openapi-forge
The client API it generates is suitable for running in the browser (after being bundled appropriately), or via node. The generated code uses the Fetch API, and as a result you'll need to use node v18 or greater.
- [OpenAPI Forge - JavaScript](#openapi-forge---javascript)
- [Example](#example)
- [Running with node (\>= v18)](#running-with-node--v18)
- [Running in the browser](#running-in-the-browser)
- [Configuration](#configuration)
- [Development](#development)
- [Running](#running)
- [Testing](#testing)
- [Linting](#linting)## Example
You should consult the [OpenAPI Forge](https://github.com/ScottLogic/openapi-forge) repository for a complete user guide. The following is a very brief example that quikcly gets you up-and-running with this generator.
Run the `forge` command to generate a client API using this generator as follows:
```
$ openapi-forge forge \
https://petstore3.swagger.io/api/v3/openapi.json \
openapi-forge-javascript \
-o api
```This will generate various files in the `api` folder.
### Running with node (>= v18)
Add the following `index.js` in the `api` folder:
```javascript
const ApiPet = require("./apiPet");
const Configuration = require("./configuration");
const transport = require("./fetch");// create an API client
const config = new Configuration(transport);
config.basePath = "https://petstore3.swagger.io";
const api = new ApiPet(config);// use it!
(async () => {
await api.addPet({
id: 1,
name: "Fido",
photoUrls: [],
});const pet = await api.getPetById(1);
console.log(pet.name);
})();
```To test the API, this example adds a Pet named “Fido” to the Pet Store, then retrieves it via its id, logging the name. You can run the example as follows:
```
% node index.js
Fido
```### Running in the browser
You'll need to bundle the files into a single script, there are various tools that can be used for this purpose, but browserify is one of the simplest:
```
% npx browserify index.js -o bundle.js
```Next create a simple HTML file that loads this script:
```
```
Load the above page in a browser and you should see `Fido` logged to the console.
## Configuration
OpenAPI Forge is opinionated in its approach, we don't provide a vast range of configuration options, just the essentials! You can list the generator-specific configuration options by running the `generate-options` command as follows:
```
% openapi-forge generator-options openapi-forge-javascript
This generator has a number of additional options which can be supplied when executing the 'forge' command.Options:
--generator.moduleFormat The module format to use for the generated code. (choices: "commonjs", "esmodule",
default: "commonjs")
```## Development
The OpenAPI Forge project [details the process for creating a new generator](https://github.com/ScottLogic/openapi-forge#generator-development). The documentation gives a few generator-specific instructions.
### Running
To run this generator, you also need to have [OpenAPI Forge] installed, or the repository checked out. Assuming you have it installed as a global module, you can run this generator as follows:
```
$ openapi-forge forge \
https://petstore3.swagger.io/api/v3/openapi.json \
. \
-o api \
```This generates an API from the Pet Store swagger definition, using the generator within the current folder (`.`), outputting the results to the `api` folder.
### Testing
The standard test script is used to execute the BDD-style tests against this generator.
```
npm run test
```The script expects that the openapi-forge project (which is where the BDD feature files are located) is checked out at the same folder-level as this project.
### Linting
Two scripts are available to help you find linting errors:
```
npm run lint:check:all
```This runs eslint in check mode which will raise errors found but not try and fix them. This is also ran on a PR and a push to main. It will fail if any errors were found.
```
npm run lint:write:all
```This runs eslint in write mode which will raise errors found and try to fix them.