The Generated Service
Amplication auto-generates fully functional human-readable and editable services based on TypeScript and Node.js.
The generated services include NestJS, Prisma, REST API, GraphQL API, a React admin UI, authentication, authorization, logging, and more.
In this article you can find the details on the structure of a single service and the technologies behind it.
You can see an example of a service generated with Amplication in this repository
The generated service is built with the following proven open-source technologies:
- NestJS - A progressive Node.js framework for building efficient, reliable and scalable server-side applications.
- Prisma - Next-generation ORM for Node.js and TypeScript.
- PostgreSQL - The world's most advanced open source relational database
- MySQL - A popular, open source database delivering high performance scalable database applications.
- MongoDB - A source-available, cross-platform, document-oriented, NoSQL database program.
- Passport - Simple, unobtrusive authentication for Node.js
- GraphQL - a query language for APIs.
- Swagger UI - Visual documentation for REST API based on OpenAPI Specification.
- Docker - an open platform for developing, shipping, and running applications.
- React-Admin - A frontend Framework for building B2B applications running in the browser on top of REST/GraphQL APIs, using ES6, React and Material Design.
The generated service is built from two projects, each in a separate folder
- Server - For all the server components including REST API, GraphQL, Services and more.
- Admin - For the Admin UI including forms for CRUD operations on all data models.
The server project provides all the back-end services of your application, like REST API, GraphQL API, authentication, authorization, logging, data validation, and connection to the database.
The following diagram shows PostgresSQL as an example. MySQL and MongoDB are also supported.
The Admin project provide a React application with ready-made forms for creating and editing all the data models of your application. The React app is pre-configured to work with the server and comes with all the boilerplate and foundation for your client - routing and navigation, authentication, permissions, menu, breadcrumbs, error handling and much more.