Amplify is a product from AWS that has two aspects to it:

  • Amplify framework which as an open-source framework which provides a CLIlibraries to integrate frontend code with the backend and UI components to build fullstack iOS, Android, Web, and React Native apps. You can configure and integrate the underlying cloud services like AWS AppSync (Managed GraphQL, offline data sync), Amazon Cognito (Authentication, Authorization, User Management, MFA), Amazon Pinpoint (Analytics, Customer Engagement), AWS Lambda (GraphQL Resolver, Business logic), Amazon S3 (Storage), or Amazon Lex (Conversation Bots) directly from your command line minimizing the time required to set-up and manage your back-end services.
  • The Amplify Console provides a Git-based workflow for hostingfullstack serverless web apps with continuous deployment.

Image for post

It also supports static-site generators like **Gatsby, Eleventy, Hugo, VuePress, **and Jekyll. You can deploy serverless backends with GraphQL/REST APIsauthenticationanalytics, and storage created by the Amplify CLI on the same commit as your frontend code.

Important: You can use Amplify console to deploy and host Single Page App (SPA) frontends and static websites, without using the Amplify Framework.

GraphQL

Amplify supports GraphQL, which is yet another API technology just like REST, SOAP, gRPC, Thrift, OpenAPI (Swagger) etc. First of all, GraphQL is not a Graph database query language. GraphQL is a query language for your APIs which offers a strong type system, great tools for **domain modelling **and many other features.

Components

  • **Schema — **Each GraphQL API is defined by a single GraphQL schema. A GraphQL server’s type system is referred to as that server’s schema. All data operations are validated against this schema. GraphQL comes with a set of default scalar types out of the box (Int, Float, String, Boolean, ID), allows you to create own scalar / object types and supports interfacesunion and list types.
  • **Data Source — **This is the source of the data for the GraphQL API. The data source could be of any type, as long as one is authorized to read from it.
  • Resolvers — Resolvers are the components that connect with the data source and are able to map a schema with it.

Note: GraphQL isn’t tied to any specific database or storage engine and is instead backed by your existing code and data.

In GraphQL, you define certain types as part of domain modelling which are part of your schema. In the following image, the “!” at the end of the type means that the field is required or Not-Null.

#graphql #full-stack #aws-amplify #serverless #aws #graphql

AWS Amplify and GraphQL— an Introduction
5.15 GEEK