How do I determine the backend URL based on the backend path?
If the incoming request is /product/apigw/document
, and the API with the frontend path of /product/
is hit:
When the backend path is an empty string, the backend URL is /apigw/document
.
When the backend path is /tencent/
, cut off /product/
and paste the rest behind the path in the backend, and then the backend URL becomes /tencent/apigw/document
.
How do I determine the API hit priority?
If the API path starts with =
, it has the highest priority, and exact match is used.
If the API path starts with ^~
, it has the second priority and cannot contain regular expressions. The prefix match is used.
If the API path is a regular expression including path variables, it has the third priority.
If the API path is a normal string, the longest string has the highest priority. The longest match is used.
When creating an API, if you select "Support CORS", then API Gateway will support cross-origin requests. The default configuration is as follows:
What should I do if an API request fails?
After a user creates an API service, call failures often occur and the following prompt is returned:
{"message":"There is no api match uri[\\/api\\/v1\\/tool\\/123\\/ico] host [service-asoj98o0-1251762227.ap-guangzhou.apigateway.myqcloud.com]"}
Check whether the API service has been released in an environment.
A created API service can be called only after it is released in an environment. If it is modified, it won't take effect until it is released again.
If a service is released in different environments, the default call address should contain the environment name, such as:
service-asoj98o0-1251762227.ap-guangzhou.apigateway.myqcloud.com/release/user path
How do I map the frontend and backend parameters if the API configuration contains path parameters?
When the frontend configuration contains a fixed string and path parameters, for example, the frontend path is /{PathA}/{PathB}/detail
, if the incoming request is /middleware/apigw/detail
, the value of PathA parameter delivered to the backend is middleware
, and the value of PathB parameter is apigw
.
When the frontend configuration contains a fixed string and path parameters, for example, the frontend path is /{PathA}/product/{PathB}
, if the incoming request is /middleware/product/apigw/detail
, the value of PathA parameter delivered to the backend is middleware
, and the value of PathB parameter is apigw/detail
.
When the frontend configuration only contains path parameters, for example, the frontend path is /{PathA}/{PathB}
, if the incoming request is /middleware/apigw/detail
, the value of PathA parameter delivered to the backend is middleware/apigw
, and the value of PathB parameter is detail
.
Note:
For microservice APIs, we recommend that you do not define both X-NameSpace-Code and X-MicroService-Name as the Path parameters. If you need to do so, please use a fixed string, for example, /{X-NameSpace-Code}/{X-MicroService-Name}/service.
Was this page helpful?