Warning
You're browsing the documentation for an old version of Webiny. Consider upgrading your project to Webiny 5.35.x.
What you’ll learn
  • what does the API project application represent
  • gain awareness about the default VPC and custom VPC deployments

The API Project Application
anchor

The API project application represents your project’s HTTP API, whose main purpose is to serve the default Admin Area and Website applications, via a GraphQL interface.

But do note that the API application is much more than just a simple GraphQL interface. The default Webiny applications not only extend the application’s GraphQL schema, but also bring additional processes and cloud infrastructure resources in order to achieve their goal. For example, in order to store and serve files, and optimize images, the File Manager application brings a couple of dedicated Lambda functions, and an S3 bucket. Another example is the Page Builder application, which also brings a couple of dedicated Lambda functions that deal with prerendering of pages.

Of course, the application can additionally grow in terms of code and cloud infrastructure on your behalf, if need be.

Different Cloud Infrastructure Setups
anchor

Note that the cloud infrastructure, defined within the API project application, is defined as two different setups - development and production.

This is simply because, for development purposes, not all of the production cloud infrastructure resources are needed. For example, for improved security posture, the production setup will deploy all of your Lambda functions into a custom Virtual Private Cloud (VPC) external link with private subnets. It will also deploy your Amazon Elastic Search Service external link into multiple availability zones (AZs), in order to provide high availability.

Both setups can be found inside of the API project application’s folder:

  • development - api/pulumi/dev
  • production - api/pulumi/prod

Take a look at the code in our GitHub repository external link to get a better sense of what’s different on the code level.

The other two project applications, Admin Area and Website, do not have different setups for different environments, as it’s simply not needed.