Cloud Endpoints supports APIs that are described using version 2.0 of the OpenAPI specification. You describe the API surface and configure Endpoints features such as authentication rules or quotas in an OpenAPI document.
Endpoints makes special use of the following required fields in your OpenAPI document:
This page provides information about how Endpoints uses the preceding fields. With this information, you can finish preparing your OpenAPI document for deployment.
As a starting point, this page assumes that you have:
- A Google Cloud project.
- Basic knowledge of OpenAPI.
- An OpenAPI document in the format described in the Swagger basic structure documentation.
Cloud Endpoints uses the name you configure in the
hostfield of your OpenAPI document as the name of your service.
The name of your API service must be unique on Google Cloud. Because Endpoints uses DNS-compatible names to identify services, we recommend that you use your API's domain name or subdomain name as the service name. With this approach, the service name that appears on the Endpoints Services page matches the name used in requests to your API. Additionally, if your service name and domain name are the same, you can create a Cloud Endpoints Portal for your API users. Endpoints has the following requirements for the service name:
- The maximum length of the domain name is 253 characters.
- The domain name must start with a lowercase letter.
Each section in the domain name, which is delimited by dots, has the following
- Must start with a lowercase letter.
- Must not end with a dash.
- The remaining characters can be lowercase letters, numbers, or dashes.
- The maximum length is 63 characters.
You can either register your own custom domain (such as
you can use a domain managed by Google.
Use a domain managed by GoogleGoogle owns and manages the
appspot.comdomains. If you want to use a domain managed by Google, you must use your Google Cloud project ID as part of the service name. Because Google Cloud projects have a globally unique project ID, this requirement ensures that you have a unique service name.
The domain name that you use depends on the backend that hosts your API:
For APIs that are hosted on the App Engine flexible environment, you must use the
appspot.comdomain, and the service name must be in the following format, where
YOUR_PROJECT_IDis your Google Cloud project ID:
When you deploy your API to App Engine, a DNS entry with a name in the format
YOUR_PROJECT_ID.appspot.comis created automatically.
For APIs that are hosted on Compute Engine, Google Kubernetes Engine, or Kubernetes, you must use the
cloud.googdomain, and the service name must be in the following format, where
YOUR_API_NAMEis the name of your API:
To use this domain as the API's domain name, read Configuring DNS on the
Use a custom domain
If you don't want to use a domain managed by Google, you can use a custom domain
myapi.mycompany.com) that you are authorized to use.
Before you deploy the API configuration, follow the steps in
Verify ownership of the domain.
info.title field is a user-friendly name for your API. The
Endpoints > Services page in the Cloud Console displays the
text that you configure in the
info.title field. If you have more than
one API per Cloud project, the API name is displayed in a list when you
first open the page. You can click on the API name to open another page
that displays the API's metrics, deployment history, and other information.
The Endpoints > Services page in the Cloud Console displays the version number for your API. Before deploying your API configuration for the first time:
Set the version number in the
info.versionfield to the applicable API version,for example,
basePathfield to the major version number, for example,
For additional information on versioning your API, see API lifecycle management.
operationId is an optional field in the OpenAPI Specification,
Endpoints requires this field because it is used for internal
identification of the operation. The string that you use for the
must be unique within your API. See the description for
in the OpenAPI Specification for guidance on naming.