top of page

API-CLI

August 2024 

This project was done during my time at Justworks. In an effort to understand APIs better and learn about command line interfaces, this project was created. The project has been further developed into an npm package that creates API endpoint & schema files and converts JSON objects to JSON schemas through the command line. All confidential information has been cleared by legal and approved for a personal project. 

Why

In an approach to studying RESTful API endpoint structure and JSON schema

How

JavaScript

Project

Internship @ Justworks

Background

For my internship at Justworks, one of my projects was to create a command-line interface for API endpoint creation. The endpoint directory creation follows the structure of the API route and pre-populates the template as much as it can based on the interactive shell inputs from the user. This project was a chance for me to explore further about API endpoint creation, study RESTful APIs and schemas (response and request format), and learn about JSON schema format. This CLI has been registered into an npm package and has been integrated to API repositories within the company.

Core Features

Interactive File Creations

  • Create Endpoint Files Based on RESTful APIs

  • Generation of schema files (response.schema.js & body.schema.js)

JSON to JSON Schema

API Endpoint Creation

One can create an endpoint file interactively with a given prompt and with the given input from the user, it will automatically populate the template as much as it can. In case of when the user does specify to create a response file, it will automatically link to the correct response file on the first line of the endpoint file. ​

Schema Files Generation

1. Create Response Schema file (Body schema file is not asked for GET & DELETE)

Screenshot 2024-08-11 at 12.38.11 AM.png

2. Ask users if they want response and body schema files and prepends schema files if already exists 

Screenshot 2024-08-11 at 12.38.23 AM.png

3. Result created

Screenshot 2024-08-11 at 12.38.41 AM.png

JSON to JSON Schema

You may have noticed the schema files being empty so apicli json command  allows users to type in a JSON object and convert it to JSON schemas and simply paste it to the schema files that were created earlier. It is capable of handling simple JSON objects to complex and deeply nested JSON objects.

Further Capabilities

Conditional body.schema.js file

User will not be asked for creation of body.schema.js for GET or DELETE method as it doesn't have a request body.​

Pre-populate endpoint template

Schema, parameters, connected import response files, and routes are pre-populated.​

Purposeful error

Errors are purposefully triggered to prompt users to further customize

Strict Restriction

Prompts users to follow the strict rules of how APIs are composed when asking prompts (ex: directing users to put in routing format of /member & stops users from creating already existing endpoints).

Check it Out! 

image.png
bottom of page