Comparing Extensible Service Proxy and Endpoints Frameworks

This page explains the differences between Cloud Endpoints Frameworks for the App Engine standard environment and the Extensible Service Proxy (ESP), which is used in Cloud Endpoints for APIs using OpenAPI or gRPC. For more information about the Cloud Endpoints options, see Choosing a Cloud Endpoints Option.

Overview

Cloud Endpoints is an API management system that helps you secure, monitor, analyze, and set quotas on your APIs using the same infrastructure Google uses for its own APIs. API management features includes authentication, API keys, monitoring, logging and tracing independent of the technology used to implement the API. API Management functionality is provided through the Extensible Service Proxy or by using the Cloud Endpoints Frameworks.

Extensible Service Proxy

In Cloud Endpoints for OpenAPI and gRPC, API requests are relayed through the Extensible Service Proxy, which validates keys and authentication tokens and sends signals (metrics and logs) via the Service Control API. The separation provided by ESP means that you can write the REST or gRPC backend code in any language, and you can use gRPC or any framework that supports API description using OpenAPI.

  • APIs using OpenAPI: The API backend can run on the App Engine flexible environment, Google Kubernetes Engine, Compute Engine, Kubernetes, or on-premises deployments.

  • APIs using gRPC: The API backend can run on GKE, Compute Engine, Kubernetes, or on-premises deployments.

ESP architecture

A request is sent on the following path:

  1. A request to your code is received and is sent to ESP.
  2. ESP sends a check request to Service Control.
  3. If you configured your API to require an API key or authentication, Service Control checks to see if the request is permitted and sends a response back to ESP.
  4. If the request is not permitted, ESP rejects the request. If the request is permitted, it is forwarded to your backend code. Either way, ESP logs information about the request.

Pricing of Cloud Endpoints API management depends on the number of calls per month.

Endpoints Frameworks

For API backends running on the App Engine standard environment, Endpoints Frameworks is available to help developers quickly get started serving an API. Endpoints Frameworks is a web framework and is an alternative to Python Flask or Java Jersey. Endpoints Frameworks integrates with Service Control API, meaning a backend that uses Endpoints Frameworks does not need to run behind the Extensible Service Proxy.

Endpoints Frameworks

A request is sent on the following path:

  1. A request to your code is received and is sent to the Endpoints Management module.
  2. If you have enabled API Management by deploying your API configuration, the Endpoints Management module sends a check request to Service Control.
  3. If you configured your API to require an API key or authentication, Service Control checks to see if the request is permitted and sends a response back to the Endpoints Management module.
  4. If the request is not permitted, the Endpoints Management module rejects the request. If the request is permitted, it is forwarded to the Endpoints Framework. Either way, the Endpoints Management module logs information about the request.
  5. The request is forwarded to your backend code.

Endpoints Frameworks can be used with or without API management functionality. Use of Endpoints Frameworks without API management functionality is offered at no charge. API management functionality is charged according to the Cloud Endpoints pricing page.

Endpoints Frameworks is supported only for services running on the App Engine standard environment. On Compute Engine, GKE, App Engine flexible environment, or other environments, your services must run behind the Extensible Service Proxy.

If the service is running behind the Extensible Service Proxy, the backend code can be written in any language and framework, such as Python Flask, Java Jersey, Node.JS Express. In such environments, there is no need to use Endpoints Frameworks for API management.

Learn more

Was this page helpful? Let us know how we did:

Send feedback about...

Cloud Endpoints Frameworks for App Engine
Need help? Visit our support page.