All Projects β†’ cdimascio β†’ Generator Express No Stress Typescript

cdimascio / Generator Express No Stress Typescript

Licence: mit
πŸš„ A Yeoman generator for Express.js based 12-factor apps and apis using Typescript

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Generator Express No Stress Typescript

Generator Express No Stress
πŸš‚ A Yeoman generator for Express.js based 12-factor apps and apis
Stars: ✭ 534 (+79.8%)
Mutual labels:  swagger, openapi, openapi3, expressjs, yeoman-generator
Express Jsdoc Swagger
Swagger OpenAPI 3.x generator
Stars: ✭ 69 (-76.77%)
Mutual labels:  swagger, openapi, openapi3, expressjs
Openapi Directory
🌐 Wikipedia for Web APIs. Directory of REST API definitions in OpenAPI 2.0/3.x format
Stars: ✭ 2,635 (+787.21%)
Mutual labels:  swagger, openapi, openapi3
Redoc
πŸ“˜ OpenAPI/Swagger-generated API Reference Documentation
Stars: ✭ 15,935 (+5265.32%)
Mutual labels:  swagger, openapi, openapi3
openapi-schemas
JSON Schemas for every version of the OpenAPI Specification
Stars: ✭ 22 (-92.59%)
Mutual labels:  swagger, openapi, openapi3
fastify-openapi-glue
A plugin for Fastify to autogenerate a configuration based on a OpenApi(v2/v3) specification.
Stars: ✭ 94 (-68.35%)
Mutual labels:  swagger, openapi, openapi3
Openapi Mock
OpenAPI mock server with random data generation
Stars: ✭ 202 (-31.99%)
Mutual labels:  swagger, openapi, openapi3
openapi-schema-validator
OpenAPI schema validator for Python
Stars: ✭ 35 (-88.22%)
Mutual labels:  swagger, openapi, openapi3
Express Oas Generator
OpenAPI (Swagger) specification generator for ExpressJS applications
Stars: ✭ 138 (-53.54%)
Mutual labels:  swagger, openapi, expressjs
Mockoon
Mockoon is the easiest and quickest way to run mock APIs locally. No remote deployment, no account required, open source.
Stars: ✭ 3,448 (+1060.94%)
Mutual labels:  swagger, openapi, openapi3
Spot
Spot is a concise, developer-friendly way to describe your API contract.
Stars: ✭ 230 (-22.56%)
Mutual labels:  swagger, openapi, openapi3
Safrs
SqlAlchemy Flask-Restful Swagger Json:API OpenAPI
Stars: ✭ 255 (-14.14%)
Mutual labels:  swagger, openapi, openapi3
Swagger Node Codegen
An OpenAPI 3.x/Swagger 2 code generator for Node.js
Stars: ✭ 189 (-36.36%)
Mutual labels:  swagger, openapi, openapi3
Openapi Spec Validator
OpenAPI Spec validator
Stars: ✭ 161 (-45.79%)
Mutual labels:  swagger, openapi, openapi3
Swaggerprovider
F# generative Type Provider for Swagger
Stars: ✭ 201 (-32.32%)
Mutual labels:  swagger, openapi, openapi3
Prism
Turn any OpenAPI2/3 and Postman Collection file into an API server with mocking, transformations and validations.
Stars: ✭ 2,484 (+736.36%)
Mutual labels:  swagger, openapi, openapi3
Openapi Diff
Utility for comparing two OpenAPI specifications.
Stars: ✭ 208 (-29.97%)
Mutual labels:  swagger, openapi, openapi3
Openapi.tools
A collection of Editors, Linters, Parsers, Code Generators, Documentation, Testing
Stars: ✭ 257 (-13.47%)
Mutual labels:  swagger, openapi, openapi3
Rapipdf
PDF generation from OpenAPI / Swagger Spec
Stars: ✭ 132 (-55.56%)
Mutual labels:  swagger, openapi, openapi3
Prance
Resolving Swagger/OpenAPI 2.0 and 3.0 Parser
Stars: ✭ 133 (-55.22%)
Mutual labels:  swagger, openapi, openapi3

generator-express-no-stress-typescript

Codacy Badge All Contributors

![](https://img.shields.io/badge/license-MIT-blue.svg)

Create awesome Express.js applications with best of breed tech including Typescript, structured logging with Pino, API validation and interactive documentation via an OpenAPI 3 or Swagger 2 spec, environment based config with dotenv.

generator-express-no-stress-typescript gets you up and running in seconds. It's ridiculously easy to configure. Heck, just take the defaults. Start it. Write code.

This generator scaffolds a fully functioning REST API server complete with interactive documentation, API validation, structured logging, environment driven config, and more. Simply run the generator and smile :-D

This project is a Typescript variant of generator-express-no-stress

Here's what you get!

Install

Requires Node 6 or greater

npm install -g yo generator-express-no-stress-typescript
  • See here for use with Yarn and/or Docker

Scaffold

yo express-no-stress-typescript myapp
cd myapp

Run

Run in development mode:

npm run dev

Package and run in production mode

npm run compile
npm start

Test

npm test

Debug

Run one of the following, then attach your favorite inspector.

# debug the server
npm run dev:debug

# debug the tests
npm run test:debug

Try it!


Usage: CLI

yo express-no-stress-typescript [appname] [--yarn] [--docker]
Option default Description
appname myapp The application folder
--yarn - Use the yarn package manager, instead of npm
--docker Install Docker artifacts including a Dockerfile

Usage: Project

The sections below describe all usage options available once the project is generated/scaffolded.

npm targets

Target Description
npm run dev Run in development mode
npm run dev:debug Debug in development mode
npm run test Run tests
npm run test:debug Debug tests
npm run compile Transpile source code for production use
npm start Run the in production mode. *Requires running npm run compile first

Deploy to the Cloud

e.g. CloudFoundry

cf push myapp

Use Yarn

# scaffold
yo express-no-stress-typescript myapp --yarn

# start
cd myapp
npm start

What you get!

  • Typescript - Typescript is a typed superset of JavaScript that compiles to plain JavaScript
  • Express.js - Fast, unopinionated , minimalist web framework for Node.js
  • Pino - Extremely fast node.js logger, inspired by Bunyan. It also includes a shell utility to pretty-print its log files
  • dotenv - Loads environment variables from .env for nodejs projects
  • Swagger - is a simple yet powerful representation of your RESTful API.
  • SwaggerUI - dynamically generate beautiful documentation and sandbox from a Swagger-compliant API

API Validation

Simply describe your APIs with Swagger and automagically get for free:

  • Interactive documentation
  • API validation

Interactive API Doc

API Validation!

Oops! I the API caller forgot to pass a name field, no stress, we've got this!

Structured Logging

Structured logging out of the box!

raw

pretty

Structured logging pretty printed by default - great for dev!

API Validation Example

Simply describe your APIs with Swagger and automatically get:

  • API request validation
  • Interactive documentation

example

Swagger API spec

swagger: '2.0'
info:
  version: 1.0.0
  title: myapp
  description: My cool app
basePath: /api/v1
tags:
  - name: Examples
    description: Simple example endpoints
  - name: Specification
    description: The swagger API specification

consumes:
  - application/json
produces:
  - application/json

definitions:
  ExampleBody:
    type: object
    title: example
    required:
      - name
    properties:
      name:
        type: string
        example: no_stress

paths:
  /examples:
    get:
      tags:
        - Examples
      description: Fetch all examples
      responses:
        200:
          description: Returns all examples
    post:
      tags:
        - Examples
      description: Create a new example
      parameters:
        - name: example
          in: body
          description: an example
          required: true
          schema:
            $ref: '#/definitions/ExampleBody'
      responses:
        200:
          description: Returns all examples

  /examples/{id}:
    get:
      tags:
        - Examples
      parameters:
        - name: id
          in: path
          required: true
          description: The id of the example to retrieve
          type: integer
      responses:
        200:
          description: Return the example with the specified id
        404:
          description: Example not found

  /spec:
    get:
      tags:
        - Specification
      responses:
        200:
          description: Return the API specification

Invoke a POST request via the Interactive doc

FAQ

Q: How do I modify the example API and make it my own?

A: There are two key files that enable you to customize and describe your API:

  1. server/routes.ts - This references the implementation of all of your routes. Add as many routes as you like and point each route your express handler functions.
  2. server/common/api.yaml - This file contains your OpenAPI spec. Describe your API here. It's recommended that you to declare any and all validation logic in this YAML. express-no-stress-typescript uses express-openapi-validator to automatically handle all API validation based on what you've defined in the spec.

Q: I previously generated an app, but I want to change the API root. How do I do this?

A: You need to make to small changes

  1. Modify server/routes.ts
   // Change your original path e.g. /api/v1/examples, to:
   app.use('/api/v2/examples', examplesRouter);
  1. Modify server/common/api.yaml and update the api root:
  # Change e.g. /api/v1 to /api/v2
  servers:
  - url: /api/v2   

License

MIT

Buy Me A Coffee

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Harris Brakmić

πŸ’»

Daniel Meyer

πŸ“–

Viraj Trivedi

πŸ’»

Sangbeom Han

πŸ“–

Stef de Goey

πŸ’»

Roger

πŸ’»

Vikash Chauhan

πŸ’» πŸ“–

Tse Kit Yam

πŸ“– πŸ’»

Randy Kamradt

πŸ’»

Vitthal Patil

πŸ’»

This project follows the all-contributors specification. Contributions of any kind welcome!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].