Skip to main content

The Generated Service

When you use Amplication to create your backend service, we automatically generate a codebase that follows best practices for software development and is fully functional, human-readable, and editable.

Some of the key features of our generated backend services include:

  • Comprehensive APIs: Every service includes REST APIs with built-in validation, documentation, and testing capabilities. Optional GraphQL support is available for enhanced data querying.
  • Authentication & Authorization: Built-in user management, role-based access control, and security best practices.
  • Database Integration: Robust database connectivity with your choice of modern ORMs and data validation.
  • Developer Experience: Generated services include logging, testing frameworks, and development tools configured according to industry standards.
  • Production-ready: Includes Docker configurations and CI/CD pipelines for straightforward deployment to your preferred platform.
  • Extensible Architecture: Clean, modular architecture that separates business logic from infrastructure concerns, making the code easy to maintain and customize.
Generated Service Example

See an example of a generated service in our sample application repository.

Technologies

The generated services utilize a suite of proven, robust technologies tailored for each supported technology.

Below are the technologies used for Amplication's supported tech stacks, ensuring efficient, reliable, and scalable server-side apps.

Server-side

Node.js

  • NestJS - A progressive Node.js framework for building efficient, reliable and scalable server-side applications.
  • Prisma - Next-generation ORM for Node.js and TypeScript.
  • Passport - Simple, unobtrusive authentication for Node.js
  • GraphQL - a query language for APIs.
  • Swagger UI - Visual documentation for REST API based on OpenAPI Specification.
  • Jest - delightful JavaScript Testing Framework with a focus on simplicity.
  • Docker - an open platform for developing, shipping, and running applications.

.NET

  • ASP.NET Core - A framework for building internet-connected, web-based applications.
  • Entity Framework Core - A modern object-database mapper for .NET. It supports queries, change tracking, updates, and schema migrations.
  • Swagger - A Swagger tool implementation for API's built with ASP.NET Core, generating beautiful API documentation including a UI to explore and test operations, directly from your routes, controllers, and models.
  • Docker - Same as above, used for creating, deploying, and running applications using containers.

Databases

Amplication supports multiple databases to cater to your application's specific needs. The following databases are currently supported:

  • MySQL - A popular, open-source relational database known for its reliability, simplicity, and performance.
  • MongoDB - A source-available, cross-platform, document-oriented NoSQL database program designed for ease of development and scaling.
  • PostgreSQL - A powerful, open-source object-relational database system with over 30 years of active development.
  • MS SQL Server - A high-performance, secure relational database by Microsoft, providing a reliable and scalable platform for applications.

If you require support for a database not listed above, please contact us to discuss potential integration options.

Client-Side

  • React - A JavaScript library for building user interfaces.
  • 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.

Projects Structure

The code for your generated service is built from a server project folder, and an optional admin folder for Node.js services:

/
|-- server/
| |-- (Your generated Server code)
|-- admin/
|-- (Your generated Admin UI code for Node.js services)

Let's review what these two folders contain:

Server

The server project provides all the back-end services of your application, like REST API, GraphQL API (for Node.js), authentication, authorization, logging, data validation, and connection to the database.

note

The following diagram shows a Node.js-generated service as an example. Both Node.js and .NET are supported.

Admin

For Node.js services, the Admin project provides 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.

Learn more