PortalMetadata
PortalMetadata API reference.
Proto: portal_metadata.proto
Package: common.gloo.solo.io
With Gloo Portal installed as part of Gloo Mesh Gateway,
you can use route tables to bundle together individual routes into an API product.
When the Portal resource selects your route table, Gloo automatically generates an OpenAPI specification for the API product,
which includes all of the routes. You can use this PortalMetadata
setting to customize details about your API product,
such as by providing a title, description, terms of service, licensing, and lifecycle management information.
After you deploy a frontend application for your portal, your end users can review the metadata in the portal to help them use your API products.
For more information, see the Bundle your APIs into API products guide, and the RouteTable API reference.
Example
This route table represents an API Product for a single API, such as the tracks
app.
The portalMetadata
section defines the information for your Tracks API product that the end-user
facing API documentation in your developer portal will display.
At a minimum, each route table for a portal must include an apiProductId
and an apiVersion
.
You can also include other portal metadata, as shown in the following example.
apiVersion: networking.gloo.solo.io/v2
kind: RouteTable
metadata:
name: tracks-rt
namespace: gloo-mesh-gateways
labels:
portal: dev-portal
api: tracks
spec:
http:
- name: tracks-api
labels:
usagePlans: dev-portal
matchers:
- uri:
prefix: /
forwardTo:
pathRewrite: /
destinations:
- ref:
name: tracks-rest-api
namespace: tracks
port:
number: 5000
portalMetadata:
apiProductId: "tracks"
apiProductDisplayName: "Catstronauts Course Tracks"
apiVersion: "v1"
title: "Catstronauts REST API"
description: "REST API for Catstronauts to retrieve data for tracks, authors and modules."
termsOfService: "You must authenticate to use this API! And other Terms of Service."
contact: "support@example.com"
license: "License info, such as MIT"
lifecycle: "Supported"
customMetadata:
compatibility: "None"
PortalMetadata
Specifications for the portalMetadata
section within the RouteTable
resource.
Field | Description |
---|---|
apiProductId | (string )Group APIs from multiple route tables together as an API product in the portal. For example, you might have separate route tables that route to different v1 and v2 versions of your billing services that have their own OpenAPI specs. By setting the apiProductId metadata to the same billing-api value in each route table, the /apis endpoint in the portal server returns the same apiProduct in the response. Then, these APIs are grouped together and shown as a single billing API product with multiple v1 and v2 versions in the frontend portal for your end users to discover and use.Configuration constraints:
|
apiProductDisplayName | (string )Give a name for the API product to display in the frontend portal. If omitted, the apiProductId value is used as the display name. If api_product_display_name is set to a different value in each route table that has the same apiProductId value, then the api_product_display_name value from the route table with the oldest creation timestamp is used. |
apiVersion | (string )The version of the API in context of the API Product. You cannot have multiple apiVersion values for the same apiProductId value, and you must set apiProductId to use apiVersion . For example, if you have two route tables that both set apiProductId to billing-api , then one route table can also set apiVersion to v1 and the other to v2 . However, both route tables cannot set the apiVersion to v1 .Configuration constraints: This field is required when using Gloo Portal. |
title | (string )The title of the openAPI specification for this API. |
description | (string )The description of the openAPI specification for this API. For rich text representation, you can use CommonMark syntax. |
termsOfService | (string )The terms of service of the openAPI specification for this API. Configuration constraints: The value must be a URL. |
contact | (string )Contact information for the openAPI specification for this API. Configuration constraints: The value must be an email address. |
license | (string )The license of the openAPI specification for this API.Note: Currently, the value must be the license name, not a URL. |
lifecycle | (string )The current lifecycle stage of the API. |
customMetadata | (repeated PortalMetadata.CustomMetadataEntry )Key-value pairs of any custom metadata that you want to show end users in the frontend portal for this API product. In particular, you might provide information about your API lifecycle management policies, such as phase=supported , phase=deprecated , compatibility=backwards , or other product information. Furthermore, the key-value pairs are added to the API Usage & Analytics data for incoming requests to this API product. |
PortalMetadata.CustomMetadataEntry
Field | Description |
---|---|
key | (string ) |
value | (string ) |