diff --git a/docs/apig/umn/ALL_META.TXT.json b/docs/apig/umn/ALL_META.TXT.json index 996de186..4f4df424 100644 --- a/docs/apig/umn/ALL_META.TXT.json +++ b/docs/apig/umn/ALL_META.TXT.json @@ -1,1651 +1,3349 @@ [ { - "uri":"apig-ug-0016.html", + "dockw":"User Guide" + }, + { + "uri":"apig_03_0200.html", + "node_id":"apig_03_0200.xml", "product_code":"apig", "code":"1", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"usermanual", "kw":"Service Overview", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], "title":"Service Overview", "githuburl":"" }, { - "uri":"apig-ug-0017.html", + "uri":"apig_0080101651.html", + "node_id":"apig_0080101651.xml", "product_code":"apig", "code":"2", - "des":"API Gateway (APIG) is a high-performance, high-availability, and high-security API hosting service that helps you build, manage, and deploy APIs at any scale. With just a", - "doc_type":"productdesc", + "des":"API Gateway (APIG) is your fully managed API hosting service. With APIG, you can build, manage, and deploy APIs at any scale to package your capabilities. With just a few", + "doc_type":"usermanual", "kw":"What Is APIG?,Service Overview,User Guide", + "search_title":"", + "metedata":[ + { + "documenttype":"usermanual", + "prodname":"apig" + } + ], "title":"What Is APIG?", "githuburl":"" }, { - "uri":"apig-zh-pd-180307002.html", + "uri":"apig-pd-180307002.html", + "node_id":"apig-pd-180307002.xml", "product_code":"apig", "code":"3", - "des":"You can quickly create APIs by configuring the required settings on the API Gateway console. API Gateway provides an inline debugging tool to simplify API development, an", - "doc_type":"productdesc", + "des":"You can quickly create APIs by configuring the required settings on the APIG console. APIG provides an inline debugging tool to simplify API development, and allows you t", + "doc_type":"usermanual", "kw":"Product Advantages,Service Overview,User Guide", + "search_title":"", + "metedata":[ + { + "documenttype":"usermanual", + "prodname":"apig" + } + ], "title":"Product Advantages", "githuburl":"" }, { - "uri":"apig-zh-pd-180307003.html", + "uri":"apig-pd-180307003.html", + "node_id":"apig-pd-180307003.xml", "product_code":"apig", "code":"4", "des":"As enterprises develop rapidly with quick business changes, internal systems of enterprises need to keep pace with the development. However, it is difficult to ensure sys", - "doc_type":"productdesc", + "doc_type":"usermanual", "kw":"Application Scenarios,Service Overview,User Guide", + "search_title":"", + "metedata":[ + { + "documenttype":"usermanual", + "prodname":"apig" + } + ], "title":"Application Scenarios", "githuburl":"" }, { "uri":"apig-specifications.html", - "product_code":"", + "node_id":"apig-specifications.xml", + "product_code":"apig", "code":"5", - "des":"Table 1 lists the specifications of dedicated API gateways.For dedicated gateways, you can adjust the maximum number of requests per second for each API.The specification", - "doc_type":"", + "des":"The following table lists the specifications of dedicated gateways.For dedicated gateways, you can adjust the maximum number of requests per second for each API.The speci", + "doc_type":"usermanual", "kw":"Specifications,Service Overview,User Guide", + "search_title":"", + "metedata":[ + { + "documenttype":"usermanual", + "prodname":"apig" + } + ], "title":"Specifications", "githuburl":"" }, { - "uri":"apig-zh-pd-180307005.html", + "uri":"apig-pd-180307005.html", + "node_id":"apig-pd-180307005.xml", "product_code":"apig", "code":"6", - "des":"To change the default restrictions, increase the quota by referring to Help Center > Others > FAQs > How Do I Apply for a Higher Quota?", - "doc_type":"productdesc", + "des":"To change the default restrictions, contact technical support to increase the quota.It takes 5 to 10 seconds for a new or modified APIG resource to take effect.The maximu", + "doc_type":"usermanual", "kw":"Notes and Constraints,Service Overview,User Guide", + "search_title":"", + "metedata":[ + { + "documenttype":"usermanual", + "prodname":"apig" + } + ], "title":"Notes and Constraints", "githuburl":"" }, { "uri":"apig-pd-190529006.html", - "product_code":"", + "node_id":"apig-pd-190529006.xml", + "product_code":"apig", "code":"7", - "des":"If you need to assign different permissions to employees in your enterprise to access your APIG resources, Identity and Access Management (IAM) is a good choice for fine-", - "doc_type":"", + "des":"If you need to assign different permissions to personnel in your enterprise to access your APIG resources, Identity and Access Management (IAM) is a good choice for fine-", + "doc_type":"usermanual", "kw":"Permissions Management,Service Overview,User Guide", + "search_title":"", + "metedata":[ + { + "documenttype":"usermanual", + "prodname":"apig" + } + ], "title":"Permissions Management", "githuburl":"" }, { - "uri":"apig-zh-pd-180307004.html", + "uri":"apig-pd-180307004.html", + "node_id":"apig-pd-180307004.xml", "product_code":"apig", "code":"8", "des":"A set of predefined functions that encapsulates application capabilities. You can create APIs and make them accessible to users.When creating an API, you need to configur", - "doc_type":"productdesc", + "doc_type":"usermanual", "kw":"Basic Concepts,Service Overview,User Guide", + "search_title":"", + "metedata":[ + { + "documenttype":"usermanual", + "prodname":"apig" + } + ], "title":"Basic Concepts", "githuburl":"" }, { - "uri":"en-us_topic_0080101651.html", + "uri":"apig_03_1002.html", + "node_id":"apig_03_1002.xml", "product_code":"apig", "code":"9", - "des":"API Gateway (APIG) is a fully managed service that enables you to securely build, manage, and deploy APIs at any scale with high performance and availability. With APIG, ", - "doc_type":"usermanual", - "kw":"Using APIG,User Guide", - "title":"Using APIG", - "githuburl":"" - }, - { - "uri":"apig-ug-0012.html", - "product_code":"apig", - "code":"10", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"usermanual", "kw":"Getting Started", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], "title":"Getting Started", "githuburl":"" }, { "uri":"apig-ug-0013.html", + "node_id":"apig-ug-0013.xml", "product_code":"apig", - "code":"11", + "code":"10", "des":"API Gateway (APIG) is a fully managed service that enables you to securely build, manage, and deploy APIs at any scale with high performance and availability. With APIG, ", "doc_type":"usermanual", "kw":"Introduction,Getting Started,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], "title":"Introduction", "githuburl":"" }, { - "uri":"apig-en-ug-180307001.html", + "uri":"apig-ug-180307001.html", + "node_id":"apig-ug-180307001.xml", "product_code":"apig", - "code":"12", + "code":"11", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"usermanual", "kw":"Opening APIs", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], "title":"Opening APIs", "githuburl":"" }, { - "uri":"apig-en-ug-180307002.html", + "uri":"apig_02_0001.html", + "node_id":"apig_02_0001.xml", "product_code":"apig", - "code":"13", - "des":"The following figure shows the process of exposing an API.Creating a GatewayBuy a dedicated gateway. For details, see Buying a Dedicated Gateway.Buy a dedicated gateway. ", + "code":"12", + "des":"The following figure shows the process of exposing an API.Creating a GatewayCreate a dedicated gateway.Create a dedicated gateway.Creating an API GroupAn API group facili", "doc_type":"usermanual", "kw":"Process Flow,Opening APIs,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], "title":"Process Flow", "githuburl":"" }, { - "uri":"apig-en-ug-180307003.html", + "uri":"apig-ug-180307003.html", + "node_id":"apig-ug-180307003.xml", "product_code":"apig", - "code":"14", - "des":"API group informationParameterDescriptionNameAPI group name. It is recommended that you enter a name based on naming rules to facilitate search.DescriptionDescription of ", + "code":"13", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"usermanual", "kw":"Creating an API Group,Opening APIs,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], "title":"Creating an API Group", "githuburl":"" }, { "uri":"apig-ug-190419107.html", + "node_id":"apig-ug-190419107.xml", "product_code":"apig", - "code":"15", + "code":"14", "des":"The independent domain name must be registered and resolved. For details, see \"Prerequisites\" in Binding a Domain Name.", "doc_type":"usermanual", "kw":"Binding a Domain Name,Opening APIs,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], "title":"Binding a Domain Name", "githuburl":"" }, { - "uri":"en-us_topic_0080101678.html", + "uri":"apig_0080101678.html", + "node_id":"apig_0080101678.xml", "product_code":"apig", - "code":"16", - "des":"Create an API with the following steps:Setting Basic InformationDefining API RequestDefining Backend ServiceDefining ResponsesSetting basic informationParameterDescriptio", + "code":"15", + "des":"Procedure:Configuring Frontend SettingsConfiguring Backend SettingsFrontend definitionParameterDescriptionNameAPI name. It is recommended that you enter a name based on n", "doc_type":"usermanual", "kw":"Creating an API,Opening APIs,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], "title":"Creating an API", "githuburl":"" }, { "uri":"apig-ug-190419108.html", + "node_id":"apig-ug-190419108.xml", "product_code":"apig", - "code":"17", - "des":"If the API is called successfully, the status code 200 is displayed.", + "code":"16", + "des":"If the API is called successfully, the status code 200 is displayed. Otherwise, rectify the fault by referring to Error Codes.", "doc_type":"usermanual", "kw":"Debugging an API,Opening APIs,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], "title":"Debugging an API", "githuburl":"" }, { - "uri":"apig-en-ug-180307004.html", + "uri":"apig-ug-180307004.html", + "node_id":"apig-ug-180307004.xml", "product_code":"apig", - "code":"18", - "des":"Environment informationParameterDescriptionNameEnvironment name. It is recommended that you enter a name based on naming rules to facilitate search.DescriptionDescription", + "code":"17", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"usermanual", "kw":"(Optional) Creating an Environment,Opening APIs,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], "title":"(Optional) Creating an Environment", "githuburl":"" }, { - "uri":"apig-en-ug-180307005.html", + "uri":"apig-ug-180307005.html", + "node_id":"apig-ug-180307005.xml", + "product_code":"apig", + "code":"18", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"usermanual", + "kw":"Publishing an API,Opening APIs,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Publishing an API", + "githuburl":"" + }, + { + "uri":"apig-ug-180307007.html", + "node_id":"apig-ug-180307007.xml", "product_code":"apig", "code":"19", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"usermanual", - "kw":"Publishing an API,Opening APIs,User Guide", - "title":"Publishing an API", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180307007.html", - "product_code":"apig", - "code":"20", - "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", - "doc_type":"usermanual", "kw":"Calling APIs", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], "title":"Calling APIs", "githuburl":"" }, { - "uri":"apig-en-ug-180307008.html", + "uri":"apig-ug-180307008.html", + "node_id":"apig-ug-180307008.xml", "product_code":"apig", - "code":"21", + "code":"20", "des":"The following figure shows the process of calling an API.Obtaining an APIObtain an API and its documentation from an API provider.Obtain an API and its documentation from", "doc_type":"usermanual", "kw":"Process Flow,Calling APIs,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], "title":"Process Flow", "githuburl":"" }, { - "uri":"apig-en-ug-180307010.html", + "uri":"apig-ug-180307010.html", + "node_id":"apig-ug-180307010.xml", + "product_code":"apig", + "code":"21", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"usermanual", + "kw":"Creating a Credential and Getting Authorized,Calling APIs,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Creating a Credential and Getting Authorized", + "githuburl":"" + }, + { + "uri":"apig-ug-180307009.html", + "node_id":"apig-ug-180307009.xml", "product_code":"apig", "code":"22", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"usermanual", - "kw":"Creating an App and Getting Authorized,Calling APIs,User Guide", - "title":"Creating an App and Getting Authorized", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180307009.html", - "product_code":"apig", - "code":"23", - "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", - "doc_type":"usermanual", "kw":"Adding an AppCode for Simple Authentication,Calling APIs,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], "title":"Adding an AppCode for Simple Authentication", "githuburl":"" }, { - "uri":"apig-en-ug-180307011.html", + "uri":"apig-ug-180307011.html", + "node_id":"apig-ug-180307011.xml", "product_code":"apig", - "code":"24", - "des":"Use an API test tool to configure the API calling information.For illustration purposes, an API and its documentation are obtained through offline channels. You can also ", + "code":"23", + "des":"Use the API test tool to configure the API request and authentication. For details about how to call an API, see section \"Calling Published APIs\" > Calling APIs.For illus", "doc_type":"usermanual", "kw":"Calling an API,Calling APIs,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], "title":"Calling an API", "githuburl":"" }, { - "uri":"apig-ug-0006.html", + "uri":"apig_03_0001.html", + "node_id":"apig_03_0001.xml", + "product_code":"apig", + "code":"24", + "des":"APIG is a fully managed service that enables you to securely build, manage, and deploy APIs at any scale with high performance and availability. With APIG, you can easily", + "doc_type":"usermanual", + "kw":"Overview,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Overview", + "githuburl":"" + }, + { + "uri":"apig_03_0003.html", + "node_id":"apig_03_0003.xml", "product_code":"apig", "code":"25", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"usermanual", - "kw":"Gateway Management", - "title":"Gateway Management", - "githuburl":"" - }, - { - "uri":"apig-ug-191004.html", - "product_code":"apig", - "code":"26", - "des":"This section describes how to buy a dedicated gateway. You can create APIs and use them to provide services only after a dedicated gateway is created.There are some limit", - "doc_type":"usermanual", - "kw":"Buying a Dedicated Gateway,Gateway Management,User Guide", - "title":"Buying a Dedicated Gateway", - "githuburl":"" - }, - { - "uri":"apig-ug-200801.html", - "product_code":"apig", - "code":"27", - "des":"You can modify the basic information and configuration parameters of dedicated gateways.To modify the basic information about a dedicated gateway, do as follows:", - "doc_type":"usermanual", - "kw":"Modifying a Dedicated Gateway,Gateway Management,User Guide", - "title":"Modifying a Dedicated Gateway", - "githuburl":"" - }, - { - "uri":"apig-ug-0019.html", - "product_code":"", - "code":"28", - "des":"VPC endpoints are secure and private channels for connecting VPCs to VPC endpoint services.APIs can be exposed and accessed across VPCs in the same region of the same clo", - "doc_type":"", - "kw":"Managing VPC Endpoints,Gateway Management,User Guide", - "title":"Managing VPC Endpoints", - "githuburl":"" - }, - { - "uri":"apig-ug-0008.html", - "product_code":"apig", - "code":"29", - "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", - "doc_type":"usermanual", - "kw":"API Opening", - "title":"API Opening", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180307014.html", - "product_code":"apig", - "code":"30", - "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", - "doc_type":"usermanual", - "kw":"API Group Management", - "title":"API Group Management", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180307015.html", - "product_code":"apig", - "code":"31", - "des":"Before creating an API, you must create an API group. An API group contains different APIs used for the same service.Each API can only belong to one API group.After the A", - "doc_type":"usermanual", - "kw":"Creating an API Group,API Group Management,User Guide", - "title":"Creating an API Group", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180327076.html", - "product_code":"apig", - "code":"32", - "des":"Before you open an API, you must bind one or more independent domain names to the group to which the API belongs.In a dedicated gateway, you cannot bind the same independ", - "doc_type":"usermanual", - "kw":"Binding a Domain Name,API Group Management,User Guide", - "title":"Binding a Domain Name", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180307018.html", - "product_code":"apig", - "code":"33", - "des":"You can delete an API group if you do not require it.API groups that contain APIs cannot be deleted.You have created an API group.In the Operation column of the target AP", - "doc_type":"usermanual", - "kw":"Deleting an API Group,API Group Management,User Guide", - "title":"Deleting an API Group", - "githuburl":"" - }, - { - "uri":"apig-lgug-200226001.html", - "product_code":"apig", - "code":"34", - "des":"A gateway response is displayed if APIG fails to process an API request. APIG provides a set of default responses and also allows you to create gateway responses with cus", - "doc_type":"usermanual", - "kw":"Adding a Gateway Response,API Group Management,User Guide", - "title":"Adding a Gateway Response", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180307019.html", - "product_code":"apig", - "code":"35", - "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", - "doc_type":"usermanual", "kw":"API Management", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], "title":"API Management", "githuburl":"" }, { - "uri":"apig-en-ug-180307020.html", + "uri":"apig_03_0005.html", + "node_id":"apig_03_0005.xml", "product_code":"apig", - "code":"36", - "des":"You can selectively expose your services by configuring their APIs in APIG.To create an API, set the basic information and define the API request, backend service, and re", + "code":"26", + "des":"An API group contains APIs used for the same service. You can manage APIs by group, and must create a group before creating an API.You can create an API group using the f", + "doc_type":"usermanual", + "kw":"Creating an API Group,API Management,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Creating an API Group", + "githuburl":"" + }, + { + "uri":"apig_03_0071.html", + "node_id":"apig_03_0071.xml", + "product_code":"apig", + "code":"27", + "des":"By importing Cloud Container Engine (CCE) workloads, you can open your CCE service capabilities through APIs.If your gateway does not support CCE workload import, contact", + "doc_type":"usermanual", + "kw":"Importing a CCE Workload,API Management,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Importing a CCE Workload", + "githuburl":"" + }, + { + "uri":"apig_03_0006.html", + "node_id":"apig_03_0006.xml", + "product_code":"apig", + "code":"28", + "des":"Before you expose an API, bind an independent domain name to the API group so that APIs in the group can be accessed with the domain name. A maximum of five independent d", + "doc_type":"usermanual", + "kw":"Binding a Domain Name,API Management,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Binding a Domain Name", + "githuburl":"" + }, + { + "uri":"apig_03_0007.html", + "node_id":"apig_03_0007.xml", + "product_code":"apig", + "code":"29", + "des":"You can define environment variables to allow an API to be called in different environments.Environment variables are manageable and specific to environments. You can add", + "doc_type":"usermanual", + "kw":"Creating an Environment Variable,API Management,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Creating an Environment Variable", + "githuburl":"" + }, + { + "uri":"apig_03_0008.html", + "node_id":"apig_03_0008.xml", + "product_code":"apig", + "code":"30", + "des":"A gateway response is displayed if APIG fails to process an API request. APIG provides a set of default responses and also allows you to create responses with custom stat", + "doc_type":"usermanual", + "kw":"Creating a Gateway Response,API Management,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Creating a Gateway Response", + "githuburl":"" + }, + { + "uri":"apig_03_0010.html", + "node_id":"apig_03_0010.xml", + "product_code":"apig", + "code":"31", + "des":"You can selectively expose your backends by configuring their APIs in APIG. To create an API, perform the following steps:Configuring Frontend SettingsFrontend definition", "doc_type":"usermanual", "kw":"Creating an API,API Management,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], "title":"Creating an API", "githuburl":"" }, { - "uri":"apig-en-ug-180621094.html", + "uri":"apig_03_0078.html", + "node_id":"apig_03_0078.xml", "product_code":"apig", - "code":"37", + "code":"32", + "des":"APIG supports gRPC API creation. gRPC is a modern, open-source, high-performance Remote Procedure Call (RPC) framework that can run in any environment. You only need to d", + "doc_type":"usermanual", + "kw":"Creating a gRPC API,API Management,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Creating a gRPC API", + "githuburl":"" + }, + { + "uri":"apig_03_0076.html", + "node_id":"apig_03_0076.xml", + "product_code":"apig", + "code":"33", + "des":"To improve API creation efficiency, you can clone an API with a custom name and path.Policies bound to an API cannot be cloned and can only be manually bound to the new A", + "doc_type":"usermanual", + "kw":"Cloning an API,API Management,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Cloning an API", + "githuburl":"" + }, + { + "uri":"apig_03_0011.html", + "node_id":"apig_03_0011.xml", + "product_code":"apig", + "code":"34", "des":"For security reasons, browsers restrict cross-origin requests initiated from within scripts. This means that a web application can only request resources from its origin.", "doc_type":"usermanual", "kw":"CORS,API Management,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], "title":"CORS", "githuburl":"" }, { - "uri":"apig-en-ug-180307025.html", + "uri":"apig_03_0012.html", + "node_id":"apig_03_0012.xml", "product_code":"apig", - "code":"38", - "des":"After creating an API, debug it on the APIG console by setting HTTP headers and body parameters to verify whether the API is running normally.APIs with backend request pa", + "code":"35", + "des":"After creating an API, debug it on the APIG console by setting HTTP headers and body to verify whether the API is running normally.APIs with backend request paths contain", "doc_type":"usermanual", "kw":"Debugging an API,API Management,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], "title":"Debugging an API", "githuburl":"" }, { - "uri":"apig-en-ug-180307021.html", + "uri":"apig_03_0013.html", + "node_id":"apig_03_0013.xml", "product_code":"apig", - "code":"39", - "des":"APIs using app authentication can only be called by apps that have been authorized to call them.You can only authorize apps to call published APIs.You can authorize apps ", + "code":"36", + "des":"APIs using app authentication can only be called by credentials that have been authorized to call them.You can authorize credentials only to call APIs that use app authen", "doc_type":"usermanual", - "kw":"Authorizing Apps to Call an API,API Management,User Guide", - "title":"Authorizing Apps to Call an API", + "kw":"Authorizing API Access,API Management,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Authorizing API Access", "githuburl":"" }, { - "uri":"apig-en-ug-180307023.html", + "uri":"apig_03_0014.html", + "node_id":"apig_03_0014.xml", "product_code":"apig", - "code":"40", + "code":"37", "des":"APIs can be called only after they have been published in an environment. You can publish APIs in different environments. APIG allows you to view the publication history ", "doc_type":"usermanual", "kw":"Publishing an API,API Management,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], "title":"Publishing an API", "githuburl":"" }, { - "uri":"apig-en-ug-180307024.html", + "uri":"apig_03_0070.html", + "node_id":"apig_03_0070.xml", "product_code":"apig", - "code":"41", + "code":"38", "des":"You can remove APIs that you do not need from the environments where the APIs have been published.This operation will cause the APIs to be inaccessible in the environment", "doc_type":"usermanual", "kw":"Taking an API Offline,API Management,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], "title":"Taking an API Offline", "githuburl":"" }, { - "uri":"apig-en-ug-180307027.html", + "uri":"apig_03_0082.html", + "node_id":"apig_03_0082.xml", "product_code":"apig", - "code":"42", - "des":"You can delete published APIs you no longer require.Deleted APIs cannot be accessed by apps or users who were using the APIs, so make sure you notify users before the del", + "code":"39", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"usermanual", - "kw":"Deleting an API,API Management,User Guide", - "title":"Deleting an API", + "kw":"Importing and Exorting APIs", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Importing and Exorting APIs", "githuburl":"" }, { - "uri":"apig-en-ug-181025104.html", + "uri":"apig_03_0083.html", + "node_id":"apig_03_0083.xml", "product_code":"apig", - "code":"43", - "des":"APIG allows you to import Swagger 2.0 APIs to existing or new API groups. Swagger is an open-source tool built based on OpenAPI specifications to design, build, record, a", + "code":"40", + "des":"Note the following restrictions and compatibility issues when importing or exporting APIs on APIG:APIG parameter restrictions:APIG does not support the configuration of r", "doc_type":"usermanual", - "kw":"Importing APIs,API Management,User Guide", + "kw":"Restrictions and Compatibility,Importing and Exorting APIs,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Restrictions and Compatibility", + "githuburl":"" + }, + { + "uri":"apig_03_0067.html", + "node_id":"apig_03_0067.xml", + "product_code":"apig", + "code":"41", + "des":"You can import Swagger and OpenAPI APIs to a new or existing API group on APIG. Before importing APIs, complete the extended definition of APIG.When you import APIs to a ", + "doc_type":"usermanual", + "kw":"Importing APIs,Importing and Exorting APIs,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], "title":"Importing APIs", "githuburl":"" }, { - "uri":"apig-en-ug-181204105.html", + "uri":"apig_03_0015.html", + "node_id":"apig_03_0015.xml", "product_code":"apig", - "code":"44", - "des":"You can export APIs one by one or in batches as JSON or YAML files.You have created an API group and API.The export result is displayed on the right.", + "code":"42", + "des":"You can export APIs one by one or in batches as JSON, YAML, or YML files.Or choose API Management > APIs, and click Export APIs.", "doc_type":"usermanual", - "kw":"Exporting APIs,API Management,User Guide", + "kw":"Exporting APIs,Importing and Exorting APIs,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], "title":"Exporting APIs", "githuburl":"" }, { - "uri":"apig-en-ug-180307028.html", + "uri":"apig_03_0084.html", + "node_id":"apig_03_0084.xml", "product_code":"apig", - "code":"45", + "code":"43", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"usermanual", - "kw":"Request Throttling", + "kw":"Extended Definition", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Extended Definition", + "githuburl":"" + }, + { + "uri":"apig_03_0085.html", + "node_id":"apig_03_0085.xml", + "product_code":"apig", + "code":"44", + "des":"Meaning: Swagger-based apiKey authentication format, which defines an authentication mode provided by APIG.Scope of effect: Security Scheme Object (2.0)/Security Scheme O", + "doc_type":"usermanual", + "kw":"x-apigateway-auth-type,Extended Definition,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"x-apigateway-auth-type", + "githuburl":"" + }, + { + "uri":"apig_03_0086.html", + "node_id":"apig_03_0086.xml", + "product_code":"apig", + "code":"45", + "des":"Meaning: API request type, which can be public or private.Scope of effect: Operation Object (2.0)/Operation Object (3.0)Example:", + "doc_type":"usermanual", + "kw":"x-apigateway-request-type,Extended Definition,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"x-apigateway-request-type", + "githuburl":"" + }, + { + "uri":"apig_03_0087.html", + "node_id":"apig_03_0087.xml", + "product_code":"apig", + "code":"46", + "des":"Meaning: Request URL matching mode, which can be NORMAL or SWA.Scope of effect: Operation Object (2.0)/Operation Object (3.0)Example:", + "doc_type":"usermanual", + "kw":"x-apigateway-match-mode,Extended Definition,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"x-apigateway-match-mode", + "githuburl":"" + }, + { + "uri":"apig_03_0088.html", + "node_id":"apig_03_0088.xml", + "product_code":"apig", + "code":"47", + "des":"Meaning: Specifies whether CORS is supported. The value is of the Boolean type.Scope of effect: Operation Object (2.0)/Operation Object (3.0)Example:For the API request f", + "doc_type":"usermanual", + "kw":"x-apigateway-cors,Extended Definition,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"x-apigateway-cors", + "githuburl":"" + }, + { + "uri":"apig_03_0106.html", + "node_id":"apig_03_0106.xml", + "product_code":"apig", + "code":"48", + "des":"Meaning: Whether to perform Base64 encoding on the request body used for interaction with FunctionGraph. The value is of the Boolean type.Scope of effect: Operation Objec", + "doc_type":"usermanual", + "kw":"x-apigateway-is-send-fg-body-base64,Extended Definition,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"x-apigateway-is-send-fg-body-base64", + "githuburl":"" + }, + { + "uri":"apig_03_0089.html", + "node_id":"apig_03_0089.xml", + "product_code":"apig", + "code":"49", + "des":"Meaning: API request method used by default if no HTTP request method is specified.Scope of effect: Path Item Object (2.0)/Path Item Object (3.0)Example:", + "doc_type":"usermanual", + "kw":"x-apigateway-any-method,Extended Definition,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"x-apigateway-any-method", + "githuburl":"" + }, + { + "uri":"apig_03_0090.html", + "node_id":"apig_03_0090.xml", + "product_code":"apig", + "code":"50", + "des":"Meaning: API backend definition.Scope of effect: Operation Object (2.0)/Operation Object (3.0)Example:", + "doc_type":"usermanual", + "kw":"x-apigateway-backend,Extended Definition,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"x-apigateway-backend", + "githuburl":"" + }, + { + "uri":"apig_03_0091.html", + "node_id":"apig_03_0091.xml", + "product_code":"apig", + "code":"51", + "des":"Meaning: API backend service definition.Scope of effect: x-apigateway-backendExample:", + "doc_type":"usermanual", + "kw":"x-apigateway-backend.parameters,Extended Definition,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"x-apigateway-backend.parameters", + "githuburl":"" + }, + { + "uri":"apig_03_0092.html", + "node_id":"apig_03_0092.xml", + "product_code":"apig", + "code":"52", + "des":"Meaning: HTTP backend service definition.Scope of effect: x-apigateway-backendExample:", + "doc_type":"usermanual", + "kw":"x-apigateway-backend.httpEndpoints,Extended Definition,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"x-apigateway-backend.httpEndpoints", + "githuburl":"" + }, + { + "uri":"apig_03_0093.html", + "node_id":"apig_03_0093.xml", + "product_code":"apig", + "code":"53", + "des":"Meaning: HTTP VPC backend service definition.Scope of effect: x-apigateway-backendExample:", + "doc_type":"usermanual", + "kw":"x-apigateway-backend.httpVpcEndpoints,Extended Definition,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"x-apigateway-backend.httpVpcEndpoints", + "githuburl":"" + }, + { + "uri":"apig_03_0094.html", + "node_id":"apig_03_0094.xml", + "product_code":"apig", + "code":"54", + "des":"Meaning: Function backend service definition.Scope of effect: x-apigateway-backendExample:", + "doc_type":"usermanual", + "kw":"x-apigateway-backend.functionEndpoints,Extended Definition,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"x-apigateway-backend.functionEndpoints", + "githuburl":"" + }, + { + "uri":"apig_03_0095.html", + "node_id":"apig_03_0095.xml", + "product_code":"apig", + "code":"55", + "des":"Meaning: Mock backend service definition.Scope of effect: x-apigateway-backendExample:", + "doc_type":"usermanual", + "kw":"x-apigateway-backend.mockEndpoints,Extended Definition,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"x-apigateway-backend.mockEndpoints", + "githuburl":"" + }, + { + "uri":"apig_03_0096.html", + "node_id":"apig_03_0096.xml", + "product_code":"apig", + "code":"56", + "des":"Meaning: API backend policy.Scope of effect: Operation Object (2.0)/Operation Object (3.0)Example:", + "doc_type":"usermanual", + "kw":"x-apigateway-backend-policies,Extended Definition,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"x-apigateway-backend-policies", + "githuburl":"" + }, + { + "uri":"apig_03_0097.html", + "node_id":"apig_03_0097.xml", + "product_code":"apig", + "code":"57", + "des":"Meaning: API backend policy conditions.Scope of effect: x-apigateway-backend-policiesExample:", + "doc_type":"usermanual", + "kw":"x-apigateway-backend-policies.conditions,Extended Definition,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"x-apigateway-backend-policies.conditions", + "githuburl":"" + }, + { + "uri":"apig_03_0098.html", + "node_id":"apig_03_0098.xml", + "product_code":"apig", + "code":"58", + "des":"Meaning: Request throttling policy.Scope of effect: Operation Object (2.0)/Operation Object (3.0)Example:", + "doc_type":"usermanual", + "kw":"x-apigateway-ratelimit,Extended Definition,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"x-apigateway-ratelimit", + "githuburl":"" + }, + { + "uri":"apig_03_0099.html", + "node_id":"apig_03_0099.xml", + "product_code":"apig", + "code":"59", + "des":"Meaning: Mapping between a request throttling policy name and limit values.Scope of effect: Swagger ObjectExample:", + "doc_type":"usermanual", + "kw":"x-apigateway-ratelimits,Extended Definition,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"x-apigateway-ratelimits", + "githuburl":"" + }, + { + "uri":"apig_03_0100.html", + "node_id":"apig_03_0100.xml", + "product_code":"apig", + "code":"60", + "des":"Meaning: Definition of a request throttling policy.Scope of effect: x-apigateway-ratelimitsExample:", + "doc_type":"usermanual", + "kw":"x-apigateway-ratelimits.policy,Extended Definition,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"x-apigateway-ratelimits.policy", + "githuburl":"" + }, + { + "uri":"apig_03_0101.html", + "node_id":"apig_03_0101.xml", + "product_code":"apig", + "code":"61", + "des":"Meaning: Definition of a special request throttling policy.Scope of effect: x-apigateway-ratelimits.policyExample:", + "doc_type":"usermanual", + "kw":"x-apigateway-ratelimits.policy.special,Extended Definition,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"x-apigateway-ratelimits.policy.special", + "githuburl":"" + }, + { + "uri":"apig_03_0102.html", + "node_id":"apig_03_0102.xml", + "product_code":"apig", + "code":"62", + "des":"Meaning: Access control policy.Scope of effect: Operation Object (2.0)/Operation Object (3.0)Example:", + "doc_type":"usermanual", + "kw":"x-apigateway-access-control,Extended Definition,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"x-apigateway-access-control", + "githuburl":"" + }, + { + "uri":"apig_03_0103.html", + "node_id":"apig_03_0103.xml", + "product_code":"apig", + "code":"63", + "des":"Meaning: Mapping between an access control policy name and limit settings.Scope of effect: Swagger ObjectExample:", + "doc_type":"usermanual", + "kw":"x-apigateway-access-controls,Extended Definition,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"x-apigateway-access-controls", + "githuburl":"" + }, + { + "uri":"apig_03_0104.html", + "node_id":"apig_03_0104.xml", + "product_code":"apig", + "code":"64", + "des":"Meaning: Definition of an access control policy.Scope of effect: x-apigateway-access-controlsExample:", + "doc_type":"usermanual", + "kw":"x-apigateway-access-controls.policy,Extended Definition,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"x-apigateway-access-controls.policy", + "githuburl":"" + }, + { + "uri":"apig_03_0105.html", + "node_id":"apig_03_0105.xml", + "product_code":"apig", + "code":"65", + "des":"Meaning: API plug-in service.Scope of effect: Operation Object (2.0)/Operation Object (3.0)Example:", + "doc_type":"usermanual", + "kw":"x-apigateway-plugins,Extended Definition,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"x-apigateway-plugins", + "githuburl":"" + }, + { + "uri":"apig_03_0016.html", + "node_id":"apig_03_0016.xml", + "product_code":"apig", + "code":"66", + "des":"The APIs page displays all APIs of the current gateway, including the URL, running environment, and authentication mode.", + "doc_type":"usermanual", + "kw":"Viewing APIs,API Management,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Viewing APIs", + "githuburl":"" + }, + { + "uri":"apig_03_0069.html", + "node_id":"apig_03_0069.xml", + "product_code":"apig", + "code":"67", + "des":"APIG supports HTTP/2, which is a major revision of HTTP and was originally named HTTP 2.0. It provides binary encoding, request multiplexing over a single connection, and", + "doc_type":"usermanual", + "kw":"HTTP 2.0,API Management,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"HTTP 2.0", + "githuburl":"" + }, + { + "uri":"apig_03_0017.html", + "node_id":"apig_03_0017.xml", + "product_code":"apig", + "code":"68", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"usermanual", + "kw":"API Policies", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"API Policies", + "githuburl":"" + }, + { + "uri":"apig_03_0019.html", + "node_id":"apig_03_0019.xml", + "product_code":"apig", + "code":"69", + "des":"APIG provides flexible API control policies.Policy parameters will be stored as plaintext. To prevent information leakage, do not contain sensitive information in these p", + "doc_type":"usermanual", + "kw":"Creating a Policy and Binding It to APIs,API Policies,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Creating a Policy and Binding It to APIs", + "githuburl":"" + }, + { + "uri":"apig_03_0021.html", + "node_id":"apig_03_0021.xml", + "product_code":"apig", + "code":"70", + "des":"For security purposes, the browser restricts cross-domain requests from being initiated from a page script. In this case, the page can access only the resources from the ", + "doc_type":"usermanual", + "kw":"CORS,API Policies,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"CORS", + "githuburl":"" + }, + { + "uri":"apig_03_0022.html", + "node_id":"apig_03_0022.xml", + "product_code":"apig", + "code":"71", + "des":"HTTP response headers are part of the response returned by APIG to a client that calls an API. You can customize HTTP response headers that will be contained in an API re", + "doc_type":"usermanual", + "kw":"HTTP Response Header Management,API Policies,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"HTTP Response Header Management", + "githuburl":"" + }, + { + "uri":"apig_03_0054.html", + "node_id":"apig_03_0054.xml", + "product_code":"apig", + "code":"72", + "des":"A request throttling 2.0 policy limits the number of times that an API can be called within a specific time period. Parameter-based, basic, and excluded throttling is sup", + "doc_type":"usermanual", + "kw":"Request Throttling 2.0,API Policies,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Request Throttling 2.0", + "githuburl":"" + }, + { + "uri":"apig_03_0061.html", + "node_id":"apig_03_0061.xml", + "product_code":"apig", + "code":"73", + "des":"Kafka log push policies push calling logs of open APIs to Kafka for analysis.If your gateway does not support this policy, contact technical support to upgrade the gatewa", + "doc_type":"usermanual", + "kw":"Kafka Log Push,API Policies,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Kafka Log Push", + "githuburl":"" + }, + { + "uri":"apig_03_0023.html", + "node_id":"apig_03_0023.xml", + "product_code":"apig", + "code":"74", + "des":"Circuit breaker policies protect your backend services when a performance issue occurs. If the backend service of an API times out for N consecutive times or if the laten", + "doc_type":"usermanual", + "kw":"Circuit Breaker,API Policies,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Circuit Breaker", + "githuburl":"" + }, + { + "uri":"apig_03_0077.html", + "node_id":"apig_03_0077.xml", + "product_code":"apig", + "code":"75", + "des":"You can configure your own service to authenticate API requests. APIG first invokes this service for authentication, and then invokes the backend service after receiving ", + "doc_type":"usermanual", + "kw":"Third-Party Authorizer,API Policies,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Third-Party Authorizer", + "githuburl":"" + }, + { + "uri":"apig_03_0025.html", + "node_id":"apig_03_0025.xml", + "product_code":"apig", + "code":"76", + "des":"Request throttling limits the number of times APIs can be called by a user or app within a specific time period to protect backend services. The throttling can be down to", + "doc_type":"usermanual", + "kw":"Request Throttling,API Policies,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], "title":"Request Throttling", "githuburl":"" }, { - "uri":"apig-en-ug-180307029.html", + "uri":"apig_03_0027.html", + "node_id":"apig_03_0027.xml", "product_code":"apig", - "code":"46", - "des":"Request throttling controls the number of times an API can be called within a time period to protect backend services.To provide stable, uninterrupted services, you can c", + "code":"77", + "des":"Access control policies are a type of security measures provided by APIG. You can use them to allow or deny API access from specific IP addresses, account names, or accou", "doc_type":"usermanual", - "kw":"Creating a Request Throttling Policy,Request Throttling,User Guide", - "title":"Creating a Request Throttling Policy", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180307032.html", - "product_code":"apig", - "code":"47", - "des":"You can delete request throttling policies you no longer require.You have created a request throttling policy.In the Operation column of the request throttling policy you", - "doc_type":"usermanual", - "kw":"Deleting a Request Throttling Policy,Request Throttling,User Guide", - "title":"Deleting a Request Throttling Policy", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180307033.html", - "product_code":"apig", - "code":"48", - "des":"If you want to control the number of API calls received from a specific app or tenant, add an excluded app or tenant to a request throttling policy.You have created an ap", - "doc_type":"usermanual", - "kw":"Adding an Excluded App or Tenant,Request Throttling,User Guide", - "title":"Adding an Excluded App or Tenant", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180307035.html", - "product_code":"apig", - "code":"49", - "des":"You can remove excluded apps or tenants from a request throttling policy. This section takes an excluded app as an example.You have created a request throttling policy.Yo", - "doc_type":"usermanual", - "kw":"Removing an Excluded App or Tenant,Request Throttling,User Guide", - "title":"Removing an Excluded App or Tenant", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180712096.html", - "product_code":"apig", - "code":"50", - "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", - "doc_type":"usermanual", - "kw":"Access Control", + "kw":"Access Control,API Policies,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], "title":"Access Control", "githuburl":"" }, { - "uri":"apig-en-ug-180712097.html", + "uri":"apig_03_0028.html", + "node_id":"apig_03_0028.xml", "product_code":"apig", - "code":"51", - "des":"Access control policies are a type of security measures provided by APIG. You can use them to allow or deny API access from specific IP addresses or accounts.Access contr", - "doc_type":"usermanual", - "kw":"Creating an Access Control Policy,Access Control,User Guide", - "title":"Creating an Access Control Policy", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180712100.html", - "product_code":"apig", - "code":"52", - "des":"You can delete access control policies you no longer require.You have created an access control policy.In the Operation column of the access control policy you want to de", - "doc_type":"usermanual", - "kw":"Deleting an Access Control Policy,Access Control,User Guide", - "title":"Deleting an Access Control Policy", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180307036.html", - "product_code":"apig", - "code":"53", - "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", - "doc_type":"usermanual", - "kw":"Environment Management", - "title":"Environment Management", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180307037.html", - "product_code":"apig", - "code":"54", - "des":"An API can be called in different environments, such as production, testing, and development environments. RELEASE is the default environment provided by APIG. You can de", - "doc_type":"usermanual", - "kw":"Creating an Environment and Environment Variable,Environment Management,User Guide", - "title":"Creating an Environment and Environment Variable", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180307039.html", - "product_code":"apig", - "code":"55", - "des":"You can delete environments you no longer require.You have created an environment.You can delete an environment only if no APIs have been published in the environment.", - "doc_type":"usermanual", - "kw":"Deleting an Environment,Environment Management,User Guide", - "title":"Deleting an Environment", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180307040.html", - "product_code":"apig", - "code":"56", - "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", - "doc_type":"usermanual", - "kw":"Signature Key Management", - "title":"Signature Key Management", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180307041.html", - "product_code":"apig", - "code":"57", + "code":"78", "des":"Signature keys are used by backend services to verify the identity of APIG.A signature key consists of a key and secret, and can be used only after being bound to an API.", "doc_type":"usermanual", - "kw":"Creating and Using a Signature Key,Signature Key Management,User Guide", - "title":"Creating and Using a Signature Key", + "kw":"Signature Keys,API Policies,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Signature Keys", "githuburl":"" }, { - "uri":"apig-en-ug-180307045.html", + "uri":"apig_03_0029.html", + "node_id":"apig_03_0029.xml", "product_code":"apig", - "code":"58", - "des":"You can delete signature keys you no longer require.You have created a signature key.In the Operation column of the signature key you want to delete, click Delete.Click t", + "code":"79", + "des":"APIG supports custom authentication of both frontend and backend requests.Frontend custom authentication: If you already have an authentication system, you can configure ", "doc_type":"usermanual", - "kw":"Deleting a Signature Key,Signature Key Management,User Guide", - "title":"Deleting a Signature Key", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180425080.html", - "product_code":"apig", - "code":"59", - "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", - "doc_type":"usermanual", - "kw":"VPC Channel Management", - "title":"VPC Channel Management", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180425081.html", - "product_code":"apig", - "code":"60", - "des":"VPC channels allow services deployed in VPCs to be accessed through their subnets, lowering latency and balancing loads of backend services.After creating a VPC channel, ", - "doc_type":"usermanual", - "kw":"Creating a VPC Channel,VPC Channel Management,User Guide", - "title":"Creating a VPC Channel", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180425083.html", - "product_code":"apig", - "code":"61", - "des":"You can delete VPC channels you no longer require.VPC channels that are currently in use by published APIs cannot be deleted.You have created a VPC channel.In the Operati", - "doc_type":"usermanual", - "kw":"Deleting a VPC Channel,VPC Channel Management,User Guide", - "title":"Deleting a VPC Channel", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180425084.html", - "product_code":"apig", - "code":"62", - "des":"You can modify the health check configurations of a VPC channel to meet service requirements.You have created a VPC channel.Health check configurationsParameterDescriptio", - "doc_type":"usermanual", - "kw":"Editing Health Check Configurations,VPC Channel Management,User Guide", - "title":"Editing Health Check Configurations", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180502087.html", - "product_code":"apig", - "code":"63", - "des":"You can add or remove cloud servers and edit cloud server weights for VPC channels to meet service requirements.You have created a VPC channel.Adding cloud serversClick S", - "doc_type":"usermanual", - "kw":"Editing Cloud Server Configurations of a VPC Channel,VPC Channel Management,User Guide", - "title":"Editing Cloud Server Configurations of a VPC Channel", - "githuburl":"" - }, - { - "uri":"apic-ug-190430104.html", - "product_code":"apig", - "code":"64", - "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", - "doc_type":"usermanual", - "kw":"Custom Authorizers", + "kw":"Custom Authorizers,API Policies,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], "title":"Custom Authorizers", "githuburl":"" }, { - "uri":"apic-ug-190430105.html", - "product_code":"apig", - "code":"65", - "des":"This feature is currently unavailable because FunctionGraph has not been launched.APIG supports custom authentication of both frontend and backend requests.Frontend custo", - "doc_type":"usermanual", - "kw":"Creating a Custom Authorizer,Custom Authorizers,User Guide", - "title":"Creating a Custom Authorizer", - "githuburl":"" - }, - { - "uri":"apic-ug-190430106.html", - "product_code":"apig", - "code":"66", - "des":"You can delete custom authorizers you no longer require.Custom authentication is implemented using FunctionGraph and not supported if FunctionGraph is unavailable in the ", - "doc_type":"usermanual", - "kw":"Deleting a Custom Authorizer,Custom Authorizers,User Guide", - "title":"Deleting a Custom Authorizer", - "githuburl":"" - }, - { - "uri":"apig-ug-0001.html", - "product_code":"apig", - "code":"67", - "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", - "doc_type":"usermanual", - "kw":"Plug-ins", - "title":"Plug-ins", - "githuburl":"" - }, - { - "uri":"apig-ug-0004.html", - "product_code":"apig", - "code":"68", - "des":"APIG provides flexible extension capabilities for APIs through plug-ins.Plug-in parameters will be stored as plaintext. To prevent information leakage, do not contain sen", - "doc_type":"usermanual", - "kw":"Creating a Plug-in,Plug-ins,User Guide", - "title":"Creating a Plug-in", - "githuburl":"" - }, - { - "uri":"apig-ug-0002.html", - "product_code":"apig", - "code":"69", - "des":"For security purposes, the browser restricts cross-domain requests from being initiated from a page script. In this case, the page can access only the resources from the ", - "doc_type":"usermanual", - "kw":"CORS Plug-in,Plug-ins,User Guide", - "title":"CORS Plug-in", - "githuburl":"" - }, - { - "uri":"apig-ug-0005.html", - "product_code":"apig", - "code":"70", - "des":"HTTP response headers are part of the response returned by APIG to a client that calls an API. You can customize HTTP response headers that will be contained in an API re", - "doc_type":"usermanual", - "kw":"HTTP Response Header Management Plug-in,Plug-ins,User Guide", - "title":"HTTP Response Header Management Plug-in", - "githuburl":"" - }, - { - "uri":"apig-ug-0015.html", - "product_code":"", - "code":"71", - "des":"The request throttling plug-in limits the number of times an API can be called within a specific time period. It supports parameter-based, basic, and excluded throttling.", - "doc_type":"", - "kw":"Request Throttling Plug-in,Plug-ins,User Guide", - "title":"Request Throttling Plug-in", - "githuburl":"" - }, - { - "uri":"apig-ug-0003.html", - "product_code":"apig", - "code":"72", - "des":"You can delete plug-ins you no longer require. To delete a plug-in that has been bound to APIs, unbind the plug-in from the APIs and then delete it.You have created a plu", - "doc_type":"usermanual", - "kw":"Deleting a Plug-in,Plug-ins,User Guide", - "title":"Deleting a Plug-in", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180413077.html", - "product_code":"apig", - "code":"73", - "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", - "doc_type":"usermanual", - "kw":"Monitoring", - "title":"Monitoring", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180427085.html", - "product_code":"apig", - "code":"74", - "des":"This section describes the metrics that APIG reports to the Cloud Eye service. You can view metrics and alarms by using the Cloud Eye console.Dedicated gateway: SYS.APIC", - "doc_type":"usermanual", - "kw":"APIG Metrics,Monitoring,User Guide", - "title":"APIG Metrics", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180524089.html", - "product_code":"apig", - "code":"75", - "des":"You can create alarm rules to monitor the status of your APIs.An alarm rule consists of a rule name, monitored objects, metrics, alarm thresholds, monitoring interval, an", - "doc_type":"usermanual", - "kw":"Creating Alarm Rules,Monitoring,User Guide", - "title":"Creating Alarm Rules", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180427086.html", - "product_code":"apig", - "code":"76", - "des":"Cloud Eye monitors the status of your APIs and allows you to view their metrics.You have created an API group and API.API metrics are displayed on the Dashboard tab page.", - "doc_type":"usermanual", - "kw":"Viewing Metrics,Monitoring,User Guide", - "title":"Viewing Metrics", - "githuburl":"" - }, - { - "uri":"apig-ug-0009.html", - "product_code":"apig", - "code":"77", - "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", - "doc_type":"usermanual", - "kw":"API Calling", - "title":"API Calling", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180307048.html", - "product_code":"apig", - "code":"78", - "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", - "doc_type":"usermanual", - "kw":"App Management", - "title":"App Management", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180307049.html", - "product_code":"apig", - "code":"79", - "des":"For an API that uses app authentication, you can create an app and use the app and its ID and key pair (AppKey and AppSecret) to call the API. You can use an app to call ", - "doc_type":"usermanual", - "kw":"Creating an App and Obtaining Authorization,App Management,User Guide", - "title":"Creating an App and Obtaining Authorization", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180307051.html", + "uri":"apig_03_0055.html", + "node_id":"apig_03_0055.xml", "product_code":"apig", "code":"80", - "des":"You can delete apps you no longer require.You have created an app.In the Operation column of the app you want to delete, click Delete.Click the name of the target app, an", + "des":"API groups that contain HTTPS-compatible APIs must have their independent domain names bound with SSL certificates. SSL certificates are used for data encryption and iden", "doc_type":"usermanual", - "kw":"Deleting an App,App Management,User Guide", - "title":"Deleting an App", + "kw":"SSL Certificates,API Policies,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"SSL Certificates", "githuburl":"" }, { - "uri":"apig-en-ug-180307053.html", + "uri":"apig_03_0040.html", + "node_id":"apig_03_0040.xml", "product_code":"apig", "code":"81", - "des":"You can reset the AppSecret of an app. The AppKey is unique and cannot be reset. When you reset the AppSecret, it becomes invalid and APIs bound to the app cannot be call", + "des":"Load balance channels expose your services through dedicated gateways, and are accessed through subnets in VPCs for lower latency. The server channel balances loads of ba", "doc_type":"usermanual", - "kw":"Resetting the AppSecret of an App,App Management,User Guide", - "title":"Resetting the AppSecret of an App", + "kw":"Load Balance Channels,API Policies,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Load Balance Channels", "githuburl":"" }, { - "uri":"apig-lgug-200227001.html", + "uri":"apig_03_0041.html", + "node_id":"apig_03_0041.xml", "product_code":"apig", "code":"82", - "des":"AppCodes are identity credentials of an app used to call APIs in simple authentication mode. In this mode, the X-Apig-AppCode parameter (whose value is an AppCode on the ", + "des":"An API can be called in different environments, such as production, testing, and development environments. RELEASE is the default environment provided by APIG.After the e", "doc_type":"usermanual", - "kw":"Adding an AppCode for Simple Authentication,App Management,User Guide", + "kw":"Managing Environments,API Policies,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Managing Environments", + "githuburl":"" + }, + { + "uri":"apig_03_0030.html", + "node_id":"apig_03_0030.xml", + "product_code":"apig", + "code":"83", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"usermanual", + "kw":"Credentials", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Credentials", + "githuburl":"" + }, + { + "uri":"apig_03_0056.html", + "node_id":"apig_03_0056.xml", + "product_code":"apig", + "code":"84", + "des":"For APIs that use app authentication, create credentials to generate credential IDs and key/secret pairs. When calling such an API, bind a credential to the API, use the ", + "doc_type":"usermanual", + "kw":"Creating a Credential and Binding It to APIs,Credentials,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Creating a Credential and Binding It to APIs", + "githuburl":"" + }, + { + "uri":"apig_03_0057.html", + "node_id":"apig_03_0057.xml", + "product_code":"apig", + "code":"85", + "des":"Reset the secret of a credential as necessary. After resetting, the original secret becomes invalid and APIs to which the credential is bound cannot be called. To call th", + "doc_type":"usermanual", + "kw":"Resetting Secret,Credentials,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Resetting Secret", + "githuburl":"" + }, + { + "uri":"apig_03_0058.html", + "node_id":"apig_03_0058.xml", + "product_code":"apig", + "code":"86", + "des":"AppCodes are identity credentials of a credential used to call APIs in simple authentication mode. In this mode, the X-Apig-AppCode parameter (whose value is an AppCode o", + "doc_type":"usermanual", + "kw":"Adding an AppCode for Simple Authentication,Credentials,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], "title":"Adding an AppCode for Simple Authentication", "githuburl":"" }, { - "uri":"apig-en-ug-180307054.html", - "product_code":"apig", - "code":"83", - "des":"You can view the details of an API to which an app has been bound.You have created an app.The app has been bound to an API.", - "doc_type":"usermanual", - "kw":"Viewing API Details,App Management,User Guide", - "title":"Viewing API Details", - "githuburl":"" - }, - { - "uri":"en-us_topic_0000001174497029.html", - "product_code":"apig", - "code":"84", - "des":"This section describes how to obtain and analyze the API calling logs of dedicated gateways.APIs have been called.Fields in access logs are separated using spaces. The fo", - "doc_type":"usermanual", - "kw":"Log Analysis,API Calling,User Guide", - "title":"Log Analysis", - "githuburl":"" - }, - { - "uri":"apig-ug-0010.html", - "product_code":"apig", - "code":"85", - "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", - "doc_type":"usermanual", - "kw":"Calling Published APIs", - "title":"Calling Published APIs", - "githuburl":"" - }, - { - "uri":"apig-ug-0011.html", - "product_code":"apig", - "code":"86", - "des":"Before calling APIs, obtain the request information from the API provider, including the access domain name, protocol, method, path, and request parameters.Obtain APIs: f", - "doc_type":"usermanual", - "kw":"Calling APIs,Calling Published APIs,User Guide", - "title":"Calling APIs", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180830102.html", + "uri":"apig_03_0059.html", + "node_id":"apig_03_0059.xml", "product_code":"apig", "code":"87", - "des":"The following table describes the response headers that APIG adds to the response returned when an API is called.X-Apig-Mode: debug indicates API debugging information.", + "des":"A credential quota policy limits the number of API calls that a credential can make during a specified period.Existing policy: Select a policy.New policy: Configure a pol", "doc_type":"usermanual", - "kw":"Response Headers,Calling Published APIs,User Guide", - "title":"Response Headers", + "kw":"Binding a Credential Quota Policy,Credentials,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Binding a Credential Quota Policy", "githuburl":"" }, { - "uri":"apig-en-ug-180530090.html", + "uri":"apig_03_0060.html", + "node_id":"apig_03_0060.xml", "product_code":"apig", "code":"88", - "des":"Table 1 lists the error codes that you may encounter when calling APIs.For details about the error codes that may occur when you manage APIs, see section \"Error Codes\" in", + "des":"As a protection mechanism for backend services, access control policies control the client (API caller) IP addresses that can access APIs. You can bind an access control ", "doc_type":"usermanual", - "kw":"Error Codes,Calling Published APIs,User Guide", - "title":"Error Codes", + "kw":"Binding an Access Control Policy,Credentials,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Binding an Access Control Policy", "githuburl":"" }, { - "uri":"apig-ug-190529107.html", + "uri":"apig_03_0031.html", + "node_id":"apig_03_0031.xml", "product_code":"apig", "code":"89", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"usermanual", - "kw":"Permissions Management", - "title":"Permissions Management", + "kw":"Monitoring & Analysis", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Monitoring & Analysis", "githuburl":"" }, { - "uri":"apig-ug-190529109.html", + "uri":"apig_03_0072.html", + "node_id":"apig_03_0072.xml", "product_code":"apig", "code":"90", - "des":"This topic describes how to use Identity and Access Management (IAM) to implement permissions control for your APIG resources. With IAM, you can:Create IAM users for empl", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"usermanual", - "kw":"Creating a User and Granting APIG Permissions,Permissions Management,User Guide", - "title":"Creating a User and Granting APIG Permissions", + "kw":"API Monitoring", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"API Monitoring", "githuburl":"" }, { - "uri":"apig-custom-policy.html", + "uri":"apig_03_0032.html", + "node_id":"apig_03_0032.xml", "product_code":"apig", "code":"91", - "des":"Custom policies can be created to supplement the system-defined policies of APIG. For the actions that can be added to custom policies, see section \"Permissions Policies ", + "des":"This section describes the metrics that APIG reports to the Cloud Eye service. You can view metrics and alarms by using the Cloud Eye console.SYS.APIC", "doc_type":"usermanual", - "kw":"APIG Custom Policies,Permissions Management,User Guide", - "title":"APIG Custom Policies", + "kw":"Monitoring Metrics,API Monitoring,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Monitoring Metrics", "githuburl":"" }, { - "uri":"apig-ug-0020.html", - "product_code":"", + "uri":"apig_03_0033.html", + "node_id":"apig_03_0033.xml", + "product_code":"apig", "code":"92", - "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", - "doc_type":"", - "kw":"Key Operations Recorded by CTS", - "title":"Key Operations Recorded by CTS", + "des":"You can create alarm rules to monitor the status of your APIs.An alarm rule consists of a rule name, monitored objects, metrics, alarm thresholds, monitoring interval, an", + "doc_type":"usermanual", + "kw":"Creating Alarm Rules,API Monitoring,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Creating Alarm Rules", "githuburl":"" }, { - "uri":"apig-en-ug-180307058.html", + "uri":"apig_03_0034.html", + "node_id":"apig_03_0034.xml", "product_code":"apig", "code":"93", - "des":"If you want to collect, record, or query operation logs for APIG in common scenarios such as security analysis, audit, and problem locating, enable Cloud Trace Service (C", + "des":"Cloud Eye monitors the status of your APIs and allows you to view their metrics.View the call statistics of an API, including Requests, Latency (ms), Data Traffic (bytes)", "doc_type":"usermanual", - "kw":"APIG operations that can be recorded by CTS,Key Operations Recorded by CTS,User Guide", - "title":"APIG operations that can be recorded by CTS", + "kw":"Viewing Metrics,API Monitoring,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Viewing Metrics", "githuburl":"" }, { - "uri":"apig-ug-0021.html", - "product_code":"", + "uri":"apig_03_0042.html", + "node_id":"apig_03_0042.xml", + "product_code":"apig", "code":"94", - "des":"Query audit logs by following the procedure in section \"Querying Real-Time Traces\" in the Cloud Trace Service User Guide.", - "doc_type":"", - "kw":"Querying Audit Logs,Key Operations Recorded by CTS,User Guide", - "title":"Querying Audit Logs", + "des":"This section describes how to obtain and analyze the API calling logs of a dedicatedgateway.APIs have been called.Fields in access logs are separated using spaces. The fo", + "doc_type":"usermanual", + "kw":"Log Analysis,Monitoring & Analysis,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Log Analysis", "githuburl":"" }, { - "uri":"apig-ug-cmccfaq.html", + "uri":"apig_03_0035.html", + "node_id":"apig_03_0035.xml", "product_code":"apig", "code":"95", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"usermanual", + "kw":"Gateway Management", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Gateway Management", + "githuburl":"" + }, + { + "uri":"apig_03_0037.html", + "node_id":"apig_03_0037.xml", + "product_code":"apig", + "code":"96", + "des":"This section describes how to create a gateway. You can create APIs and use them to provide services only after a gateway is created.There are some limitations on creatin", + "doc_type":"usermanual", + "kw":"Creating a Gateway,Gateway Management,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Creating a Gateway", + "githuburl":"" + }, + { + "uri":"apig_03_0038.html", + "node_id":"apig_03_0038.xml", + "product_code":"apig", + "code":"97", + "des":"You can view and modify the configuration of your gateways on the console.", + "doc_type":"usermanual", + "kw":"Viewing or Modifying Gateway Information,Gateway Management,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Viewing or Modifying Gateway Information", + "githuburl":"" + }, + { + "uri":"apig_03_0039.html", + "node_id":"apig_03_0039.xml", + "product_code":"apig", + "code":"98", + "des":"This section describes how to configure common parameters for a gateway to adjust component functions.Modifying gateway configuration parameters will interrupt services. ", + "doc_type":"usermanual", + "kw":"Configuring Parameters,Gateway Management,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Configuring Parameters", + "githuburl":"" + }, + { + "uri":"apig_03_0075.html", + "node_id":"apig_03_0075.xml", + "product_code":"apig", + "code":"99", + "des":"Tags classify your gateways to facilitate search, analysis, and management.You can search, analyze, and manage your resources on the Tag Management Service (TMS) console.", + "doc_type":"usermanual", + "kw":"Managing Tags,Gateway Management,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Managing Tags", + "githuburl":"" + }, + { + "uri":"apig_03_0063.html", + "node_id":"apig_03_0063.xml", + "product_code":"apig", + "code":"100", + "des":"VPC endpoints are secure and private channels for connecting VPCs to VPC endpoint services.APIs can be exposed and accessed across VPCs in the same region of the same clo", + "doc_type":"usermanual", + "kw":"Managing VPC Endpoints,Gateway Management,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Managing VPC Endpoints", + "githuburl":"" + }, + { + "uri":"apig_03_0064.html", + "node_id":"apig_03_0064.xml", + "product_code":"apig", + "code":"101", + "des":"If the specifications of a gateway cannot meet your service requirements, upgrade the specifications.During the specification change, the persistent connection is intermi", + "doc_type":"usermanual", + "kw":"Modifying Specifications,Gateway Management,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Modifying Specifications", + "githuburl":"" + }, + { + "uri":"apig_03_0045.html", + "node_id":"apig_03_0045.xml", + "product_code":"apig", + "code":"102", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"usermanual", + "kw":"Published API Calling", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Published API Calling", + "githuburl":"" + }, + { + "uri":"apig_03_0046.html", + "node_id":"apig_03_0046.xml", + "product_code":"apig", + "code":"103", + "des":"You can call APIs opened by others in APIG.An API can be accessed 1000 times by using the debugging domain name allocated when the API's group is created.If the CA parame", + "doc_type":"usermanual", + "kw":"Calling APIs,Published API Calling,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Calling APIs", + "githuburl":"" + }, + { + "uri":"apig_03_0047.html", + "node_id":"apig_03_0047.xml", + "product_code":"apig", + "code":"104", + "des":"The following table describes the response headers that APIG adds to the response returned when an API is called.X-Apig-Mode: debug indicates API debugging information.", + "doc_type":"usermanual", + "kw":"Response Headers,Published API Calling,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Response Headers", + "githuburl":"" + }, + { + "uri":"apig_03_0048.html", + "node_id":"apig_03_0048.xml", + "product_code":"apig", + "code":"105", + "des":"The following table lists the error codes that you may encounter when calling APIs.For details about the error codes that may occur when you manage APIs, see section \"Err", + "doc_type":"usermanual", + "kw":"Error Codes,Published API Calling,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Error Codes", + "githuburl":"" + }, + { + "uri":"apig_03_0049.html", + "node_id":"apig_03_0049.xml", + "product_code":"apig", + "code":"106", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"usermanual", + "kw":"Permissions Management", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Permissions Management", + "githuburl":"" + }, + { + "uri":"apig_03_0050.html", + "node_id":"apig_03_0050.xml", + "product_code":"apig", + "code":"107", + "des":"This topic describes how to use Identity and Access Management (IAM) to implement fine-grained permissions control for your APIG resources. With IAM, you can:Create IAM u", + "doc_type":"usermanual", + "kw":"Creating a User and Granting APIG Permissions,Permissions Management,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Creating a User and Granting APIG Permissions", + "githuburl":"" + }, + { + "uri":"apig_03_0051.html", + "node_id":"apig_03_0051.xml", + "product_code":"apig", + "code":"108", + "des":"Custom policies can be created to supplement the system-defined policies of APIG. For the actions that can be added to custom policies, see .You can create custom policie", + "doc_type":"usermanual", + "kw":"APIG Custom Policies,Permissions Management,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"APIG Custom Policies", + "githuburl":"" + }, + { + "uri":"apig_03_0065.html", + "node_id":"apig_03_0065.xml", + "product_code":"apig", + "code":"109", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"usermanual", + "kw":"Auditing", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Auditing", + "githuburl":"" + }, + { + "uri":"apig_03_0052.html", + "node_id":"apig_03_0052.xml", + "product_code":"apig", + "code":"110", + "des":"If you want to collect, record, or query operation logs for APIG in common scenarios such as security analysis, audit, and problem locating, enable Cloud Trace Service (C", + "doc_type":"usermanual", + "kw":"APIG Operations Recorded by CTS,Auditing,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"APIG Operations Recorded by CTS", + "githuburl":"" + }, + { + "uri":"apig_03_0053.html", + "node_id":"apig_03_0053.xml", + "product_code":"apig", + "code":"111", + "des":"After you enable CTS and the management tracker is created, CTS starts recording operations on cloud resources. CTS stores operation records generated in the last seven d", + "doc_type":"usermanual", + "kw":"Querying Real-Time Traces,Auditing,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], + "title":"Querying Real-Time Traces", + "githuburl":"" + }, + { + "uri":"apig_03_0079.html", + "node_id":"apig_03_0079.xml", + "product_code":"apig", + "code":"112", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"usermanual", "kw":"FAQs", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], "title":"FAQs", "githuburl":"" }, { - "uri":"apig-faq-190803.html", - "product_code":"", - "code":"96", + "uri":"index.html", + "node_id":"index.xml", + "product_code":"apig", + "code":"113", "des":"How Do I Set the Backend Address If I Will Not Use a VPC Channel (or Load Balance Channel)?How Can I Configure the Backend Service Address?Can I Specify a Private Network", - "doc_type":"", + "doc_type":"usermanual", "kw":"Common FAQs,FAQs,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Common FAQs", "githuburl":"" }, { "uri":"apig-faq-create.html", - "product_code":"", - "code":"97", + "node_id":"apig-faq-create.xml", + "product_code":"apig", + "code":"114", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", - "doc_type":"", + "doc_type":"usermanual", "kw":"API Creation", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"API Creation", "githuburl":"" }, - { - "uri":"apig-faq-2005007.html", - "product_code":"apig", - "code":"98", - "des":"The creation of APIs is free of charge. If you cannot create APIs, your account must be in arrears.", - "doc_type":"usermanual", - "kw":"Why Can't I Create APIs?,API Creation,User Guide", - "title":"Why Can't I Create APIs?", - "githuburl":"" - }, { "uri":"apig-faq-2005001.html", + "node_id":"apig-faq-2005001.xml", "product_code":"apig", - "code":"99", - "des":"API responses are defined by backend services (API providers). API Gateway (APIG) only transparently transmits responses to API callers.", + "code":"115", + "des":"There are two types of responses:Gateway response codes: returned by the gateway for API requests that are throttled, denied, or failed in authentication. For details abo", "doc_type":"usermanual", "kw":"How Do I Define Response Codes for an API?,API Creation,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"How Do I Define Response Codes for an API?", "githuburl":"" }, { "uri":"apig-faq-2005002.html", + "node_id":"apig-faq-2005002.xml", "product_code":"apig", - "code":"100", - "des":"Use the port of the API backend service.", + "code":"116", + "des":"Use the port of the API backend service.For details about how to configure the API backend, see section \"Creating an API\" in the API Gateway User Guide.", "doc_type":"usermanual", "kw":"How Do I Specify the Host Port for a VPC Channel (or Load Balance Channel)?,API Creation,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"How Do I Specify the Host Port for a VPC Channel (or Load Balance Channel)?", "githuburl":"" }, { "uri":"apig-faq-2005004.html", + "node_id":"apig-faq-2005004.xml", "product_code":"apig", - "code":"101", - "des":"You can specify the backend address as a public domain name or a public IP address, such as the Elastic IP (EIP) of an Elastic Cloud Server (ECS).", + "code":"117", + "des":"Specify the backend address as a public domain name or a public IP address, such as the Elastic IP (EIP) of an Elastic Cloud Server (ECS). To do this, enable public outbo", "doc_type":"usermanual", "kw":"How Do I Set the Backend Address If I Will Not Use a VPC Channel (or Load Balance Channel)?,API Crea", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"How Do I Set the Backend Address If I Will Not Use a VPC Channel (or Load Balance Channel)?", "githuburl":"" }, { "uri":"apig-faq-190627028.html", - "product_code":"", - "code":"102", - "des":"Configure the backend service address as an ECS EIP, or the public IP address or domain name of your own server.", - "doc_type":"", + "node_id":"apig-faq-190627028.xml", + "product_code":"apig", + "code":"118", + "des":"Configure the backend service address as an ECS EIP, or the public IP address or domain name of your own server.For details about how to configure the API backend, see se", + "doc_type":"usermanual", "kw":"How Can I Configure the Backend Service Address?,API Creation,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"How Can I Configure the Backend Service Address?", "githuburl":"" }, { "uri":"apig-faq-2005003.html", + "node_id":"apig-faq-2005003.xml", "product_code":"apig", - "code":"103", + "code":"119", "des":"For dedicated gateways, you can use private network load balancer addresses.Alternatively, you can use the EIP bound to a public network load balancer.", "doc_type":"usermanual", "kw":"Can I Specify a Private Network Load Balancer Address for the Backend Service?,API Creation,User Gui", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Can I Specify a Private Network Load Balancer Address for the Backend Service?", "githuburl":"" }, { "uri":"apig-faq-2005006.html", + "node_id":"apig-faq-2005006.xml", "product_code":"apig", - "code":"104", + "code":"120", "des":"If you use a dedicated gateway, you can specify either an IP address that belongs to the same subnet where the gateway is deployed, or the private address of a local data", "doc_type":"usermanual", "kw":"Can I Specify the Backend Address as a Subnet IP Address?,API Creation,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Can I Specify the Backend Address as a Subnet IP Address?", "githuburl":"" }, { - "uri":"apig-en-faq-180606012.html", - "product_code":"", - "code":"105", - "des":"Yes. APIG supports the configuration of multiple backend endpoints through a VPC channel (also called \"load balance channel\"). You can add multiple cloud servers to each ", - "doc_type":"", + "uri":"apig-faq-180606012.html", + "node_id":"apig-faq-180606012.xml", + "product_code":"apig", + "code":"121", + "des":"YesAPIG supports the configuration of multiple backend endpoints through a VPC channel (also called \"load balance channel\"). You can add multiple cloud servers to each VP", + "doc_type":"usermanual", "kw":"Does APIG Support Multiple Backend Endpoints?,API Creation,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Does APIG Support Multiple Backend Endpoints?", "githuburl":"" }, { "uri":"apig-faq-2005009.html", + "node_id":"apig-faq-2005009.xml", "product_code":"apig", - "code":"106", + "code":"122", "des":"If you are using a dedicated gateway, add an A record that points the independent domain name to the inbound access address of the gateway. You can bind five independent ", "doc_type":"usermanual", "kw":"What Should I Do After Applying for an Independent Domain Name?,API Creation,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"What Should I Do After Applying for an Independent Domain Name?", "githuburl":"" }, { "uri":"apig-faq-2005021.html", + "node_id":"apig-faq-2005021.xml", "product_code":"apig", - "code":"107", - "des":"In a dedicated gateway, you can add a private domain name, and add an A record to point the domain name to the inbound access address of the gateway.", + "code":"123", + "des":"In a dedicated gateway, you can add a private domain name (filing not required), and add an A record to point the domain name to the inbound access address of the gateway", "doc_type":"usermanual", "kw":"Can I Bind Private Domain Names for API Access?,API Creation,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Can I Bind Private Domain Names for API Access?", "githuburl":"" }, { "uri":"apig-faq-190627027.html", - "product_code":"", - "code":"108", + "node_id":"apig-faq-190627027.xml", + "product_code":"apig", + "code":"124", "des":"Ensure that CORS has been enabled for the API.Go to the API details page, click Edit, and check whether CORS is enabled. If it is not, enable it.Go to the API details pag", - "doc_type":"", + "doc_type":"usermanual", "kw":"Why Does an API Failed to Be Called Across Domains?,API Creation,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Why Does an API Failed to Be Called Across Domains?", "githuburl":"" }, { - "uri":"apig-en-faq-180919017.html", - "product_code":"", - "code":"109", + "uri":"apig-faq-180919017.html", + "node_id":"apig-faq-180919017.xml", + "product_code":"apig", + "code":"125", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", - "doc_type":"", + "doc_type":"usermanual", "kw":"API Calling", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"API Calling", "githuburl":"" }, { "uri":"apig-faq-2005010.html", + "node_id":"apig-faq-2005010.xml", "product_code":"apig", - "code":"110", + "code":"126", "des":"API calling failures may occur in three scenarios: within a VPC, between VPCs, and on a public network.Within a VPC: Check whether the domain name is the same as that aut", "doc_type":"usermanual", "kw":"What Are the Possible Causes for an API Calling Failure?,API Calling,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"What Are the Possible Causes for an API Calling Failure?", "githuburl":"" }, { "uri":"apig-faq-2005012.html", + "node_id":"apig-faq-2005012.xml", "product_code":"apig", - "code":"111", - "des":"If an error code is returned when you call your own APIs, see User Guide > Calling Published APIs > Error Codes.If an error code is returned when you manage your APIs, se", + "code":"127", + "des":"If an error code is returned when you call your own APIs, see Error Codes.If an error code is returned when you manage your APIs,see section \"Error Codes\" in the API Gate", "doc_type":"usermanual", "kw":"What Should I Do If an Error Code Is Returned During API Calling?,API Calling,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"What Should I Do If an Error Code Is Returned During API Calling?", "githuburl":"" }, { "uri":"apig-faq-2005022.html", + "node_id":"apig-faq-2005022.xml", "product_code":"apig", - "code":"112", - "des":"The request URL (including request parameters) is too long. Place the request parameters in the request body and try again.", + "code":"128", + "des":"The request URL (including request parameters) is too long. Place the request parameters in the request body and try again.For details about API calling errors, see secti", "doc_type":"usermanual", - "kw":"Why Am I Seeing the Error Message \"414 Request-URI Too Large\" When I Call an API?,API Calling,User G", - "title":"Why Am I Seeing the Error Message \"414 Request-URI Too Large\" When I Call an API?", + "kw":"Why Am I Seeing the Error Message \"414 Request URI too large\" When I Call an API?,API Calling,User G", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], + "title":"Why Am I Seeing the Error Message \"414 Request URI too large\" When I Call an API?", "githuburl":"" }, { "uri":"apig-faq-19123002.html", - "product_code":"", - "code":"113", + "node_id":"apig-faq-19123002.xml", + "product_code":"apig", + "code":"129", "des":"If an open API in APIG failed to be called, troubleshoot the failure by performing the following operations:The domain name, request method, or path used for calling the ", - "doc_type":"", + "doc_type":"usermanual", "kw":"What Should I Do If \"The API does not exist or has not been published in the environment.\" Is Displa", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"What Should I Do If \"The API does not exist or has not been published in the environment.\" Is Displayed?", "githuburl":"" }, { - "uri":"apig-en-faq-181016018.html", - "product_code":"", - "code":"114", + "uri":"apig-faq-181016018.html", + "node_id":"apig-faq-181016018.xml", + "product_code":"apig", + "code":"130", "des":"Check whether the backend service is accessible, and modify the backend service if it is inaccessible.Check the ECS security group configurations of the backend service a", - "doc_type":"", + "doc_type":"usermanual", "kw":"Why Am I Seeing the Message \"No backend available\"?,API Calling,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Why Am I Seeing the Message \"No backend available\"?", "githuburl":"" }, { - "uri":"en-us_topic_0087908599.html", - "product_code":"", - "code":"115", + "uri":"apig_0087908599.html", + "node_id":"apig_0087908599.xml", + "product_code":"apig", + "code":"131", "des":"The following table lists the possible causes if a backend service fails to be invoked or the invocation times out.", - "doc_type":"", + "doc_type":"usermanual", "kw":"What Are the Possible Causes If the Message \"Backend unavailable\" or \"Backend timeout\" Is Displayed?", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"What Are the Possible Causes If the Message \"Backend unavailable\" or \"Backend timeout\" Is Displayed?", "githuburl":"" }, { "uri":"apig-faq-0004.html", - "product_code":"", - "code":"116", + "node_id":"apig-faq-0004.xml", + "product_code":"apig", + "code":"132", "des":"An error message indicating a domain name resolution failure is displayed when the backend service is called, although private domain name resolution is completed for the", - "doc_type":"", + "doc_type":"usermanual", "kw":"Why Am I Seeing the Message \"Backend domain name resolution failed\" When a Backend Service Is Called", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Why Am I Seeing the Message \"Backend domain name resolution failed\" When a Backend Service Is Called?", "githuburl":"" }, { "uri":"apig-faq-19122004.html", - "product_code":"", - "code":"117", - "des":"Modification of the backend_timeout parameter in a dedicated gateway does not take effect.The Timeout (ms) parameter on the Define Backend Request page is not modified.Lo", - "doc_type":"", + "node_id":"apig-faq-19122004.xml", + "product_code":"apig", + "code":"133", + "des":"Modification of the backend_timeout parameter in gateways does not take effect.The Timeout (ms) parameter on the Define Backend Request page is not modified.Log in to the", + "doc_type":"usermanual", "kw":"Why Doesn't Modification of the backend_timeout Parameter Take Effect?,API Calling,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Why Doesn't Modification of the backend_timeout Parameter Take Effect?", "githuburl":"" }, { "uri":"apig-faq-2005011.html", + "node_id":"apig-faq-2005011.xml", "product_code":"apig", - "code":"118", - "des":"By default, the API in the RELEASE environment is called. If you want to call the same API in another environment, add the request header X-Stage to specify the environme", + "code":"134", + "des":"By default, the API in the RELEASE environment is called.If you want to call the same API in another environment, add the request header X-Stage to specify the environmen", "doc_type":"usermanual", "kw":"How Do I Switch the Environment for API Calling?,API Calling,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"How Do I Switch the Environment for API Calling?", "githuburl":"" }, { - "uri":"apig-en-faq-180606013.html", - "product_code":"", - "code":"119", + "uri":"apig-faq-180606013.html", + "node_id":"apig-faq-180606013.xml", + "product_code":"apig", + "code":"135", "des":"Dedicated gateway: APIG forwards only API requests whose body is no larger than 12 MB. If your gateway will receive requests with a body larger than 12 MB, modify the req", - "doc_type":"", + "doc_type":"usermanual", "kw":"What Is the Maximum Size of an API Request Package?,API Calling,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"What Is the Maximum Size of an API Request Package?", "githuburl":"" }, { "uri":"apig-faq-190515025.html", - "product_code":"", - "code":"120", - "des":"APIG provides SDKs and demos in multiple languages, such as Java, Python, C, PHP, and Go, for app authentication. To use Objective-C (for iOS) or other languages, see Dev", - "doc_type":"", + "node_id":"apig-faq-190515025.xml", + "product_code":"apig", + "code":"136", + "des":"APIG provides SDKs and demos in multiple languages, such as Java, Python, C, PHP, and Go, for app authentication.To use Objective-C (for iOS) or other languages, see Deve", + "doc_type":"usermanual", "kw":"How Do I Perform App Authentication in iOS System?,API Calling,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"How Do I Perform App Authentication in iOS System?", "githuburl":"" }, { "uri":"apig-faq-190627029.html", - "product_code":"", - "code":"121", - "des":"The header parameter x-auth-token has already been defined in APIG. To use this parameter to call an API, add the parameter and its value to the request header.", - "doc_type":"", + "node_id":"apig-faq-190627029.xml", + "product_code":"apig", + "code":"137", + "des":"The header parameter x-auth-token has already been defined in APIG.To use this parameter to call an API, add the parameter and its value to the request header.", + "doc_type":"usermanual", "kw":"Why Can't I Create a Header Parameter Named x-auth-token for an API Called Through IAM Authenticatio", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Why Can't I Create a Header Parameter Named x-auth-token for an API Called Through IAM Authentication?", "githuburl":"" }, { "uri":"apig-faq-190627030.html", - "product_code":"", - "code":"122", - "des":"How many apps can I create?You can create a maximum of 50 apps.How do I isolate the calling information among the third parties that call the same API through app authent", - "doc_type":"", - "kw":"App FAQs,API Calling,User Guide", - "title":"App FAQs", + "node_id":"apig-faq-190627030.xml", + "product_code":"apig", + "code":"138", + "des":"How many apps (credentials) can I create?You can create a maximum of 50 apps (credentials).How do I isolate the calling information among the third parties that call the ", + "doc_type":"usermanual", + "kw":"App (Credential) FAQs,API Calling,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], + "title":"App (Credential) FAQs", "githuburl":"" }, { - "uri":"apig-en-faq-180307004.html", - "product_code":"", - "code":"123", - "des":"Yes, mobile apps can call APIs. In app authentication mode, the AppKey and AppSecret of a mobile app are replaced with those in the relevant SDK to sign the app.", - "doc_type":"", + "uri":"apig-faq-180307004.html", + "node_id":"apig-faq-180307004.xml", + "product_code":"apig", + "code":"139", + "des":"Yes, mobile apps can call APIs.In app authentication mode, the AppKey and AppSecret of a mobile app are replaced with those in the relevant SDK to sign the app.", + "doc_type":"usermanual", "kw":"Can Mobile Apps Call APIs?,API Calling,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Can Mobile Apps Call APIs?", "githuburl":"" }, { - "uri":"apig-en-faq-180307008.html", - "product_code":"", - "code":"124", + "uri":"apig-faq-180307008.html", + "node_id":"apig-faq-180307008.xml", + "product_code":"apig", + "code":"140", "des":"Yes, applications deployed in a VPC can call APIs by default. If domain name resolution fails, configure a DNS server on the current endpoint by following the instruction", - "doc_type":"", + "doc_type":"usermanual", "kw":"Can Applications Deployed in a VPC Call APIs?,API Calling,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Can Applications Deployed in a VPC Call APIs?", "githuburl":"" }, { "uri":"apig-faq-190627033.html", - "product_code":"", - "code":"125", - "des":"APIG supports WebSocket data transmission. When creating an API, you can select HTTP, HTTPS, or HTTP&HTTPS. HTTP is equivalent to WebSocket (ws), and HTTPS is equivalent ", - "doc_type":"", - "kw":"How Do I Implement WebSocket Data Transmission?,API Calling,User Guide", - "title":"How Do I Implement WebSocket Data Transmission?", + "node_id":"apig-faq-190627033.xml", + "product_code":"apig", + "code":"141", + "des":"Yes.When creating an API, you can select HTTP, HTTPS, or HTTP&HTTPS. HTTP is equivalent to WebSocket (ws), and HTTPS is equivalent to WebSocket Secure (wss).", + "doc_type":"usermanual", + "kw":"Does APIG Support WebSocket Data Transmission?,API Calling,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], + "title":"Does APIG Support WebSocket Data Transmission?", "githuburl":"" }, { "uri":"apig-faq-19122001.html", - "product_code":"", - "code":"126", - "des":"Yes. But you should use persistent connections properly to avoid occupying too many resources.", - "doc_type":"", + "node_id":"apig-faq-19122001.xml", + "product_code":"apig", + "code":"142", + "des":"Yes.But you should use persistent connections properly to avoid occupying too many resources.", + "doc_type":"usermanual", "kw":"Does APIG Support Persistent Connections?,API Calling,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Does APIG Support Persistent Connections?", "githuburl":"" }, { "uri":"apig-faq-19123001.html", - "product_code":"", - "code":"127", + "node_id":"apig-faq-19123001.xml", + "product_code":"apig", + "code":"143", "des":"If multiple backend policies are configured for an API, APIG will match the backend policies in sequence. If an API request matches one of the backend policies, APIG imme", - "doc_type":"", + "doc_type":"usermanual", "kw":"How Will the Requests for an API with Multiple Backend Policies Be Matched and Executed?,API Calling", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"How Will the Requests for an API with Multiple Backend Policies Be Matched and Executed?", "githuburl":"" }, { "uri":"apig-faq-19122003.html", - "product_code":"", - "code":"128", - "des":"No.", - "doc_type":"", + "node_id":"apig-faq-19122003.xml", + "product_code":"apig", + "code":"144", + "des":"No.But there is a limit on the size of the request body. For details, see the request_body_size parameter in the API Gateway User Guide.", + "doc_type":"usermanual", "kw":"Is There a Limit on the Size of the Response to an API Request?,API Calling,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Is There a Limit on the Size of the Response to an API Request?", "githuburl":"" }, { "uri":"apig-faq-0007.html", - "product_code":"", - "code":"129", + "node_id":"apig-faq-0007.xml", + "product_code":"apig", + "code":"145", "des":"Enable public access for the relevant gateway to allow external services to call APIs.If you encounter a network problem when calling APIs, see What Are the Possible Caus", - "doc_type":"", + "doc_type":"usermanual", "kw":"How Can I Access Backend Services over Public Networks Through APIG?,API Calling,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"How Can I Access Backend Services over Public Networks Through APIG?", "githuburl":"" }, { "uri":"apig-faq-auth.html", - "product_code":"", - "code":"130", + "node_id":"apig-faq-auth.xml", + "product_code":"apig", + "code":"146", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", - "doc_type":"", + "doc_type":"usermanual", "kw":"API Authentication", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"API Authentication", "githuburl":"" }, { "uri":"apig-faq-2005013.html", + "node_id":"apig-faq-2005013.xml", "product_code":"apig", - "code":"131", - "des":"Dedicated gateway: Yes.Backend two-way authentication: When creating an API, enable two-way authentication for the backend service. For details, see the description about", + "code":"147", + "des":"Dedicated gateway: Yes.Frontend two-way authentication: When binding an independent domain name, select an SSL certificate that contains a CA certificate. Client authenti", "doc_type":"usermanual", "kw":"Does APIG Support HTTPS Two-Way Authentication?,API Authentication,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Does APIG Support HTTPS Two-Way Authentication?", "githuburl":"" }, { "uri":"apig-faq-2005020.html", + "node_id":"apig-faq-2005020.xml", "product_code":"apig", - "code":"132", + "code":"148", "des":"To call APIs that do not require authentication, construct standard HTTP requests and send them to APIG.APIG transparently transmits requests to call an API that does not", "doc_type":"usermanual", "kw":"How Do I Call an API That Does Not Require Authentication?,API Authentication,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"How Do I Call an API That Does Not Require Authentication?", "githuburl":"" }, { "uri":"apig-faq-2005015.html", + "node_id":"apig-faq-2005015.xml", "product_code":"apig", - "code":"133", - "des":"APIG supports TLS 1.1 and TLS 1.2, but does not support TLS 1.0 or TLS 1.3.", + "code":"149", + "des":"APIG supports TLS 1.1 and TLS 1.2, but does not support TLS 1.0 or TLS 1.3.For details, see section \"Binding a Domain Name\" in the API Gateway User Guide.", "doc_type":"usermanual", "kw":"Which TLS Versions Does APIG Support?,API Authentication,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Which TLS Versions Does APIG Support?", "githuburl":"" }, { "uri":"apig-faq-2005016.html", + "node_id":"apig-faq-2005016.xml", "product_code":"apig", - "code":"134", - "des":"Yes. For details, see \"Custom Authorizers\" in the User Guide.", + "code":"150", + "des":"Yes.For details, see section \"Custom Authorizers\" in the API Gateway User Guide.", "doc_type":"usermanual", "kw":"Does APIG Support Custom Authentication?,API Authentication,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Does APIG Support Custom Authentication?", "githuburl":"" }, { "uri":"apig-faq-2005018.html", + "node_id":"apig-faq-2005018.xml", "product_code":"apig", - "code":"135", + "code":"151", "des":"Yes. The request body is another element that needs to be signed in addition to the mandatory request header parameters. For example, when an API used to upload a file us", "doc_type":"usermanual", "kw":"Will the Request Body Be Signed for Security Authentication?,API Authentication,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Will the Request Body Be Signed for Security Authentication?", "githuburl":"" }, { "uri":"apig-faq-0003.html", - "product_code":"", - "code":"136", - "des":"You may encounter the following errors related to IAM authentication information:Incorrect IAM authentication information: verify aksk signature failIncorrect IAM authent", - "doc_type":"", + "node_id":"apig-faq-0003.xml", + "product_code":"apig", + "code":"152", + "des":"You may encounter the following errors related to IAM authentication information:Incorrect IAM authentication information: AK access failed to reach the limit,forbiddenIn", + "doc_type":"usermanual", "kw":"Common Errors Related to IAM Authentication Information,API Authentication,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Common Errors Related to IAM Authentication Information", "githuburl":"" }, + { + "uri":"apig-faq-0009.html", + "node_id":"apig-faq-0009.xml", + "product_code":"apig", + "code":"153", + "des":"You may encounter the following errors related to app authentication information:Incorrect app authentication information: app not found, appkey xxxIncorrect app authenti", + "doc_type":"usermanual", + "kw":"What Should I Do If the App Authentication Information Is Incorrect?,API Authentication,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], + "title":"What Should I Do If the App Authentication Information Is Incorrect?", + "githuburl":"" + }, { "uri":"apig-faq-0002.html", - "product_code":"", - "code":"137", + "node_id":"apig-faq-0002.xml", + "product_code":"apig", + "code":"154", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", - "doc_type":"", + "doc_type":"usermanual", "kw":"API Control Policies", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"API Control Policies", "githuburl":"" }, { "uri":"apig-faq-2005032.html", + "node_id":"apig-faq-2005032.xml", "product_code":"apig", - "code":"138", + "code":"155", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"usermanual", "kw":"Request Throttling", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Request Throttling", "githuburl":"" }, { "uri":"apig-faq-2005026.html", + "node_id":"apig-faq-2005026.xml", "product_code":"apig", - "code":"139", - "des":"No, but you can limit the maximum number of API calls allowed within a specific period of time.", + "code":"156", + "des":"No,but you can limit the maximum number of API calls allowed within a specific period of time.", "doc_type":"usermanual", "kw":"Can I Configure the Maximum Number of Concurrent Requests?,Request Throttling,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Can I Configure the Maximum Number of Concurrent Requests?", "githuburl":"" }, { "uri":"apig-faq-190627032.html", - "product_code":"", - "code":"140", - "des":"Yes.", - "doc_type":"", - "kw":"Is the Restriction of 1000 Requests to a Subdomain Name Applied to Enterprise Accounts?,Request Thro", - "title":"Is the Restriction of 1000 Requests to a Subdomain Name Applied to Enterprise Accounts?", + "node_id":"apig-faq-190627032.xml", + "product_code":"apig", + "code":"157", + "des":"Yes.For details about subdomain names (debugging domain names), see section \"Binding a Domain Name\" in the API Gateway User Guide.", + "doc_type":"usermanual", + "kw":"Is the Restriction of 1000 Requests per Day to a Subdomain Name (Debugging Domain Name) Applied to E", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], + "title":"Is the Restriction of 1000 Requests per Day to a Subdomain Name (Debugging Domain Name) Applied to Enterprise Accounts?", "githuburl":"" }, { "uri":"apig-faq-19122002.html", - "product_code":"", - "code":"141", + "node_id":"apig-faq-19122002.xml", + "product_code":"apig", + "code":"158", "des":"Dedicated gateways have bandwidth limits. When you create a dedicated gateway, you can set the bandwidth for public inbound and outbound access.", - "doc_type":"", - "kw":"Does APIG Has Bandwidth Limits?,Request Throttling,User Guide", - "title":"Does APIG Has Bandwidth Limits?", + "doc_type":"usermanual", + "kw":"Does APIG Have Bandwidth Limits?,Request Throttling,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], + "title":"Does APIG Have Bandwidth Limits?", "githuburl":"" }, { "uri":"apig-faq-0001.html", - "product_code":"", - "code":"142", + "node_id":"apig-faq-0001.xml", + "product_code":"apig", + "code":"159", "des":"API call limit or source IP address request limit of the policy does not take effect.Check whether the policy has been bound to an API.Check whether the policy has been b", - "doc_type":"", + "doc_type":"usermanual", "kw":"Why Doesn't a Request Throttling Policy Take Effect?,Request Throttling,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Why Doesn't a Request Throttling Policy Take Effect?", "githuburl":"" }, { "uri":"apig-faq-2005033.html", + "node_id":"apig-faq-2005033.xml", "product_code":"apig", - "code":"143", + "code":"160", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"usermanual", "kw":"Access Control", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Access Control", "githuburl":"" }, { "uri":"apig-faq-2005008.html", + "node_id":"apig-faq-2005008.xml", "product_code":"apig", - "code":"144", + "code":"161", "des":"You can provide an open API to specific users in either of the following ways:Select app authentication when you create the API, and share the AppKey and AppSecret with t", "doc_type":"usermanual", "kw":"How Do I Provide an Open API to Specific Users?,Access Control,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"How Do I Provide an Open API to Specific Users?", "githuburl":"" }, { "uri":"apig-faq-2005023.html", + "node_id":"apig-faq-2005023.xml", "product_code":"apig", - "code":"145", + "code":"162", "des":"You can choose either of the following solutions:Solution 1: Create an API that does not require authentication, and configure an access control policy to whitelist the I", "doc_type":"usermanual", "kw":"How Do I Exclude a Specific IP Address for Identity Authentication of an API?,Access Control,User Gu", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"How Do I Exclude a Specific IP Address for Identity Authentication of an API?", "githuburl":"" }, { - "uri":"apig-en-faq-180919016.html", - "product_code":"", - "code":"146", + "uri":"apig-faq-0008.html", + "node_id":"apig-faq-0008.xml", + "product_code":"apig", + "code":"163", + "des":"Not necessarily.In APIG, access control is based on the value of $remote_addr. $remote_addr indicates a client IP address and is determined by the access mode. If a clien", + "doc_type":"usermanual", + "kw":"Are Client IP Addresses Verified for Access Control?,Access Control,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], + "title":"Are Client IP Addresses Verified for Access Control?", + "githuburl":"" + }, + { + "uri":"apig-faq-180919016.html", + "node_id":"apig-faq-180919016.xml", + "product_code":"apig", + "code":"164", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", - "doc_type":"", + "doc_type":"usermanual", "kw":"API Publishing", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"API Publishing", "githuburl":"" }, { - "uri":"apig-en-faq-180307002.html", - "product_code":"", - "code":"147", - "des":"Yes. After you modify the parameters of a published API, you must publish the API again to synchronize the modifications to the environment.", - "doc_type":"", + "uri":"apig-faq-180307002.html", + "node_id":"apig-faq-180307002.xml", + "product_code":"apig", + "code":"165", + "des":"Yes.After you modify the parameters of a published API, you must publish the API again to synchronize the modifications to the environment.For details, see section \"Publi", + "doc_type":"usermanual", "kw":"Do I Need to Publish an API Again After Modification?,API Publishing,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Do I Need to Publish an API Again After Modification?", "githuburl":"" }, { - "uri":"apig-en-faq-180606011.html", - "product_code":"", - "code":"148", - "des":"To make an API published in a non-RELEASE environment accessible, add the x-stage header to the API request.Example:", - "doc_type":"", - "kw":"Why Can't APIs Published in a Non-RELEASE Environment Be Accessed?,API Publishing,User Guide", - "title":"Why Can't APIs Published in a Non-RELEASE Environment Be Accessed?", + "uri":"apig-faq-180606011.html", + "node_id":"apig-faq-180606011.xml", + "product_code":"apig", + "code":"166", + "des":"Yes. To access an API published in a non-RELEASE environment, add the x-stage header to the API request.Example:You can also refer to examples of section \"Quickly Opening", + "doc_type":"usermanual", + "kw":"Can I Access an API Published in a Non-RELEASE Environment?,API Publishing,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], + "title":"Can I Access an API Published in a Non-RELEASE Environment?", "githuburl":"" }, { - "uri":"apig-en-faq-181016019.html", - "product_code":"", - "code":"149", - "des":"Yes, you can invoke different backend services by publishing an API in different environments while specifying environment variables and backend parameters.", - "doc_type":"", + "uri":"apig-faq-181016019.html", + "node_id":"apig-faq-181016019.xml", + "product_code":"apig", + "code":"167", + "des":"Yes, you can invoke different backend services by publishing an API in different environments while specifying environment variables and backend parameters.For details ab", + "doc_type":"usermanual", "kw":"Can I Invoke Different Backend Services by Publishing an API in Different Environments?,API Publishi", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Can I Invoke Different Backend Services by Publishing an API in Different Environments?", "githuburl":"" }, { "uri":"apig-faq-2005027.html", + "node_id":"apig-faq-2005027.xml", "product_code":"apig", - "code":"150", - "des":"APIG debugs APIs in a specific debugging environment. After debugging is completed, you need to publish your API in an environment, and use code or postman to add the X-S", + "code":"168", + "des":"No.APIG debugs APIs in a specific debugging environment. After debugging is completed, you need to publish your API in an environment, and use code or Postman to add the ", "doc_type":"usermanual", - "kw":"How Do I Specify an Environment for API Debugging?,API Publishing,User Guide", - "title":"How Do I Specify an Environment for API Debugging?", + "kw":"Can I Specify an Environment for API Debugging?,API Publishing,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], + "title":"Can I Specify an Environment for API Debugging?", "githuburl":"" }, { "uri":"apig-faq-2005035.html", + "node_id":"apig-faq-2005035.xml", "product_code":"apig", - "code":"151", + "code":"169", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"usermanual", "kw":"API Import and Export", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"API Import and Export", "githuburl":"" }, { "uri":"apig-faq-2005024.html", + "node_id":"apig-faq-2005024.xml", "product_code":"apig", - "code":"152", + "code":"170", "des":"Possible cause 1: The number of APIs exceeds the maximum allowed limit for a single import. For more APIs (300), import them in batches or submit a service ticket to incr", "doc_type":"usermanual", "kw":"Why Does API Import Fail?,API Import and Export,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Why Does API Import Fail?", "githuburl":"" }, { "uri":"apig-faq-2005025.html", + "node_id":"apig-faq-2005025.xml", "product_code":"apig", - "code":"153", + "code":"171", "des":"The template is being developed.Currently, you can configure one or two APIs in APIG, and then export them to use as templates.", "doc_type":"usermanual", "kw":"Does APIG Provide a Template for Importing APIs from Swagger Files?,API Import and Export,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Does APIG Provide a Template for Importing APIs from Swagger Files?", "githuburl":"" }, { - "uri":"apig-en-faq-180919015.html", - "product_code":"", - "code":"154", + "uri":"apig-faq-180919015.html", + "node_id":"apig-faq-180919015.xml", + "product_code":"apig", + "code":"172", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", - "doc_type":"", + "doc_type":"usermanual", "kw":"API Security", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"API Security", "githuburl":"" }, { - "uri":"apig-en-faq-180307003.html", - "product_code":"", - "code":"155", + "uri":"apig-faq-180307003.html", + "node_id":"apig-faq-180307003.xml", + "product_code":"apig", + "code":"173", "des":"Identity authenticationConfigure IAM or App authentication for APIs to prevent malicious calling.Configure IAM or App authentication for APIs to prevent malicious calling", - "doc_type":"", + "doc_type":"usermanual", "kw":"How Can I Protect My APIs?,API Security,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"How Can I Protect My APIs?", "githuburl":"" }, { - "uri":"apig-en-faq-180307009.html", - "product_code":"", - "code":"156", + "uri":"apig-faq-180307009.html", + "node_id":"apig-faq-180307009.xml", + "product_code":"apig", + "code":"174", "des":"You can ensure the security of backend services invoked by APIG by using the following methods:Bind signature keys to APIsAfter a signature key is bound to an API, APIG a", - "doc_type":"", + "doc_type":"usermanual", "kw":"How Do I Ensure the Security of Backend Services Invoked by APIG?,API Security,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"How Do I Ensure the Security of Backend Services Invoked by APIG?", "githuburl":"" }, { "uri":"apig-faq-191201.html", - "product_code":"", - "code":"157", + "node_id":"apig-faq-191201.xml", + "product_code":"apig", + "code":"175", "des":"No.", - "doc_type":"", + "doc_type":"usermanual", "kw":"Can I Control Access to the Private IP Addresses of the ECSs in a VPC Channel (or Load Balance Chann", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Can I Control Access to the Private IP Addresses of the ECSs in a VPC Channel (or Load Balance Channel)?", "githuburl":"" }, { - "uri":"apig-en-faq-180919014.html", - "product_code":"", - "code":"158", + "uri":"apig-faq-180919014.html", + "node_id":"apig-faq-180919014.xml", + "product_code":"apig", + "code":"176", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", - "doc_type":"", + "doc_type":"usermanual", "kw":"Other FAQs", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Other FAQs", "githuburl":"" }, { - "uri":"en-us_topic_0084464485.html", - "product_code":"", - "code":"159", - "des":"An API can be published in different environments, such as RELEASE (online environment) and BETA (test environment).An app refers to the identity of an API caller. After ", - "doc_type":"", - "kw":"What Are the Relationships Between an API, Environment, and App?,Other FAQs,User Guide", - "title":"What Are the Relationships Between an API, Environment, and App?", + "uri":"apig_0084464485.html", + "node_id":"apig_0084464485.xml", + "product_code":"apig", + "code":"177", + "des":"An API can be published in different environments, such as RELEASE (online environment) and BETA (test environment).An app (credential) refers to the identity of an API c", + "doc_type":"usermanual", + "kw":"What Are the Relationships Between an API, Environment, and App (Credential)?,Other FAQs,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], + "title":"What Are the Relationships Between an API, Environment, and App (Credential)?", "githuburl":"" }, { - "uri":"en-us_topic_0084464486.html", - "product_code":"", - "code":"160", + "uri":"apig_0084464486.html", + "node_id":"apig_0084464486.xml", + "product_code":"apig", + "code":"178", "des":"You can use APIG to manage and call APIs in the following ways:Management console, a web-based service management platformIf you have already registered an account, log i", - "doc_type":"", + "doc_type":"usermanual", "kw":"How Can I Use APIG?,Other FAQs,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"How Can I Use APIG?", "githuburl":"" }, { - "uri":"apig-en-faq-180606010.html", - "product_code":"", - "code":"161", - "des":"APIG supports Java, Go, Python, C#, JavaScript, PHP, C++, C, and Android SDKs.", - "doc_type":"", + "uri":"apig-faq-180606010.html", + "node_id":"apig-faq-180606010.xml", + "product_code":"apig", + "code":"179", + "des":"APIG supports Java, Go, Python, C#, JavaScript, PHP, C++, C, and Android SDKs.For details about SDKs, see the API Gateway Developer Guide.", + "doc_type":"usermanual", "kw":"What SDK Languages Does APIG Support?,Other FAQs,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"What SDK Languages Does APIG Support?", "githuburl":"" }, { - "uri":"apig-en-faq-180307006.html", - "product_code":"", - "code":"162", + "uri":"apig-faq-180307006.html", + "node_id":"apig-faq-180307006.xml", + "product_code":"apig", + "code":"180", "des":"Yes.If you are using dedicated gateways, configure the maximum request body size allowed by setting the request_body_size parameter. The value ranges from 1 MB to 9536 MB", - "doc_type":"", + "doc_type":"usermanual", "kw":"Can I Upload Files Using the POST Method?,Other FAQs,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"Can I Upload Files Using the POST Method?", "githuburl":"" }, { - "uri":"apig-en-faq-180307001.html", - "product_code":"", - "code":"163", + "uri":"apig-faq-180307001.html", + "node_id":"apig-faq-180307001.xml", + "product_code":"apig", + "code":"181", "des":"When receiving an API request, APIG returns a response. A similar response body is as follows:\"error_code\": error code\"error_msg\": description of the error", - "doc_type":"", + "doc_type":"usermanual", "kw":"What Are the Error Messages Returned by APIG Like?,Other FAQs,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual", + "IsBot":"Yes" + } + ], "title":"What Are the Error Messages Returned by APIG Like?", "githuburl":"" }, { - "uri":"apig-faq-20210414.html", - "product_code":"", - "code":"164", - "des":"No. APIG cannot be deployed in a local data center.", - "doc_type":"", - "kw":"Can APIG Be Deployed in a Local Data Center?,Other FAQs,User Guide", - "title":"Can APIG Be Deployed in a Local Data Center?", - "githuburl":"" - }, - { - "uri":"apig-en-ug-180307075.html", + "uri":"apig_03_0081.html", + "node_id":"apig_03_0081.xml", "product_code":"apig", - "code":"165", + "code":"182", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"usermanual", "kw":"Change History,User Guide", + "search_title":"", + "metedata":[ + { + "prodname":"apig", + "documenttype":"usermanual" + } + ], "title":"Change History", "githuburl":"" } diff --git a/docs/apig/umn/CLASS.TXT.json b/docs/apig/umn/CLASS.TXT.json index f79ffa95..0fcfe833 100644 --- a/docs/apig/umn/CLASS.TXT.json +++ b/docs/apig/umn/CLASS.TXT.json @@ -3,25 +3,25 @@ "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "product_code":"apig", "title":"Service Overview", - "uri":"apig-ug-0016.html", + "uri":"apig_03_0200.html", "doc_type":"usermanual", "p_code":"", "code":"1" }, { - "desc":"API Gateway (APIG) is a high-performance, high-availability, and high-security API hosting service that helps you build, manage, and deploy APIs at any scale. With just a", + "desc":"API Gateway (APIG) is your fully managed API hosting service. With APIG, you can build, manage, and deploy APIs at any scale to package your capabilities. With just a few", "product_code":"apig", "title":"What Is APIG?", - "uri":"apig-ug-0017.html", + "uri":"apig_0080101651.html", "doc_type":"usermanual", "p_code":"1", "code":"2" }, { - "desc":"You can quickly create APIs by configuring the required settings on the API Gateway console. API Gateway provides an inline debugging tool to simplify API development, an", + "desc":"You can quickly create APIs by configuring the required settings on the APIG console. APIG provides an inline debugging tool to simplify API development, and allows you t", "product_code":"apig", "title":"Product Advantages", - "uri":"apig-zh-pd-180307002.html", + "uri":"apig-pd-180307002.html", "doc_type":"usermanual", "p_code":"1", "code":"3" @@ -30,13 +30,13 @@ "desc":"As enterprises develop rapidly with quick business changes, internal systems of enterprises need to keep pace with the development. However, it is difficult to ensure sys", "product_code":"apig", "title":"Application Scenarios", - "uri":"apig-zh-pd-180307003.html", + "uri":"apig-pd-180307003.html", "doc_type":"usermanual", "p_code":"1", "code":"4" }, { - "desc":"Table 1 lists the specifications of dedicated API gateways.For dedicated gateways, you can adjust the maximum number of requests per second for each API.The specification", + "desc":"The following table lists the specifications of dedicated gateways.For dedicated gateways, you can adjust the maximum number of requests per second for each API.The speci", "product_code":"apig", "title":"Specifications", "uri":"apig-specifications.html", @@ -45,16 +45,16 @@ "code":"5" }, { - "desc":"To change the default restrictions, increase the quota by referring to Help Center > Others > FAQs > How Do I Apply for a Higher Quota?", + "desc":"To change the default restrictions, contact technical support to increase the quota.It takes 5 to 10 seconds for a new or modified APIG resource to take effect.The maximu", "product_code":"apig", "title":"Notes and Constraints", - "uri":"apig-zh-pd-180307005.html", + "uri":"apig-pd-180307005.html", "doc_type":"usermanual", "p_code":"1", "code":"6" }, { - "desc":"If you need to assign different permissions to employees in your enterprise to access your APIG resources, Identity and Access Management (IAM) is a good choice for fine-", + "desc":"If you need to assign different permissions to personnel in your enterprise to access your APIG resources, Identity and Access Management (IAM) is a good choice for fine-", "product_code":"apig", "title":"Permissions Management", "uri":"apig-pd-190529006.html", @@ -66,28 +66,19 @@ "desc":"A set of predefined functions that encapsulates application capabilities. You can create APIs and make them accessible to users.When creating an API, you need to configur", "product_code":"apig", "title":"Basic Concepts", - "uri":"apig-zh-pd-180307004.html", + "uri":"apig-pd-180307004.html", "doc_type":"usermanual", "p_code":"1", "code":"8" }, - { - "desc":"API Gateway (APIG) is a fully managed service that enables you to securely build, manage, and deploy APIs at any scale with high performance and availability. With APIG, ", - "product_code":"apig", - "title":"Using APIG", - "uri":"en-us_topic_0080101651.html", - "doc_type":"usermanual", - "p_code":"", - "code":"9" - }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "product_code":"apig", "title":"Getting Started", - "uri":"apig-ug-0012.html", + "uri":"apig_03_1002.html", "doc_type":"usermanual", "p_code":"", - "code":"10" + "code":"9" }, { "desc":"API Gateway (APIG) is a fully managed service that enables you to securely build, manage, and deploy APIs at any scale with high performance and availability. With APIG, ", @@ -95,35 +86,35 @@ "title":"Introduction", "uri":"apig-ug-0013.html", "doc_type":"usermanual", - "p_code":"10", - "code":"11" + "p_code":"9", + "code":"10" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "product_code":"apig", "title":"Opening APIs", - "uri":"apig-en-ug-180307001.html", + "uri":"apig-ug-180307001.html", "doc_type":"usermanual", - "p_code":"10", + "p_code":"9", + "code":"11" + }, + { + "desc":"The following figure shows the process of exposing an API.Creating a GatewayCreate a dedicated gateway.Create a dedicated gateway.Creating an API GroupAn API group facili", + "product_code":"apig", + "title":"Process Flow", + "uri":"apig_02_0001.html", + "doc_type":"usermanual", + "p_code":"11", "code":"12" }, { - "desc":"The following figure shows the process of exposing an API.Creating a GatewayBuy a dedicated gateway. For details, see Buying a Dedicated Gateway.Buy a dedicated gateway. ", - "product_code":"apig", - "title":"Process Flow", - "uri":"apig-en-ug-180307002.html", - "doc_type":"usermanual", - "p_code":"12", - "code":"13" - }, - { - "desc":"API group informationParameterDescriptionNameAPI group name. It is recommended that you enter a name based on naming rules to facilitate search.DescriptionDescription of ", + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "product_code":"apig", "title":"Creating an API Group", - "uri":"apig-en-ug-180307003.html", + "uri":"apig-ug-180307003.html", "doc_type":"usermanual", - "p_code":"12", - "code":"14" + "p_code":"11", + "code":"13" }, { "desc":"The independent domain name must be registered and resolved. For details, see \"Prerequisites\" in Binding a Domain Name.", @@ -131,791 +122,944 @@ "title":"Binding a Domain Name", "uri":"apig-ug-190419107.html", "doc_type":"usermanual", - "p_code":"12", + "p_code":"11", + "code":"14" + }, + { + "desc":"Procedure:Configuring Frontend SettingsConfiguring Backend SettingsFrontend definitionParameterDescriptionNameAPI name. It is recommended that you enter a name based on n", + "product_code":"apig", + "title":"Creating an API", + "uri":"apig_0080101678.html", + "doc_type":"usermanual", + "p_code":"11", "code":"15" }, { - "desc":"Create an API with the following steps:Setting Basic InformationDefining API RequestDefining Backend ServiceDefining ResponsesSetting basic informationParameterDescriptio", - "product_code":"apig", - "title":"Creating an API", - "uri":"en-us_topic_0080101678.html", - "doc_type":"usermanual", - "p_code":"12", - "code":"16" - }, - { - "desc":"If the API is called successfully, the status code 200 is displayed.", + "desc":"If the API is called successfully, the status code 200 is displayed. Otherwise, rectify the fault by referring to Error Codes.", "product_code":"apig", "title":"Debugging an API", "uri":"apig-ug-190419108.html", "doc_type":"usermanual", - "p_code":"12", + "p_code":"11", + "code":"16" + }, + { + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"apig", + "title":"(Optional) Creating an Environment", + "uri":"apig-ug-180307004.html", + "doc_type":"usermanual", + "p_code":"11", "code":"17" }, { - "desc":"Environment informationParameterDescriptionNameEnvironment name. It is recommended that you enter a name based on naming rules to facilitate search.DescriptionDescription", + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "product_code":"apig", - "title":"(Optional) Creating an Environment", - "uri":"apig-en-ug-180307004.html", + "title":"Publishing an API", + "uri":"apig-ug-180307005.html", "doc_type":"usermanual", - "p_code":"12", + "p_code":"11", "code":"18" }, - { - "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", - "product_code":"apig", - "title":"Publishing an API", - "uri":"apig-en-ug-180307005.html", - "doc_type":"usermanual", - "p_code":"12", - "code":"19" - }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "product_code":"apig", "title":"Calling APIs", - "uri":"apig-en-ug-180307007.html", + "uri":"apig-ug-180307007.html", "doc_type":"usermanual", - "p_code":"10", - "code":"20" + "p_code":"9", + "code":"19" }, { "desc":"The following figure shows the process of calling an API.Obtaining an APIObtain an API and its documentation from an API provider.Obtain an API and its documentation from", "product_code":"apig", "title":"Process Flow", - "uri":"apig-en-ug-180307008.html", + "uri":"apig-ug-180307008.html", "doc_type":"usermanual", - "p_code":"20", + "p_code":"19", + "code":"20" + }, + { + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"apig", + "title":"Creating a Credential and Getting Authorized", + "uri":"apig-ug-180307010.html", + "doc_type":"usermanual", + "p_code":"19", "code":"21" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "product_code":"apig", - "title":"Creating an App and Getting Authorized", - "uri":"apig-en-ug-180307010.html", + "title":"Adding an AppCode for Simple Authentication", + "uri":"apig-ug-180307009.html", "doc_type":"usermanual", - "p_code":"20", + "p_code":"19", "code":"22" }, { - "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "desc":"Use the API test tool to configure the API request and authentication. For details about how to call an API, see section \"Calling Published APIs\" > Calling APIs.For illus", "product_code":"apig", - "title":"Adding an AppCode for Simple Authentication", - "uri":"apig-en-ug-180307009.html", + "title":"Calling an API", + "uri":"apig-ug-180307011.html", "doc_type":"usermanual", - "p_code":"20", + "p_code":"19", "code":"23" }, { - "desc":"Use an API test tool to configure the API calling information.For illustration purposes, an API and its documentation are obtained through offline channels. You can also ", + "desc":"APIG is a fully managed service that enables you to securely build, manage, and deploy APIs at any scale with high performance and availability. With APIG, you can easily", "product_code":"apig", - "title":"Calling an API", - "uri":"apig-en-ug-180307011.html", + "title":"Overview", + "uri":"apig_03_0001.html", "doc_type":"usermanual", - "p_code":"20", + "p_code":"", "code":"24" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "product_code":"apig", - "title":"Gateway Management", - "uri":"apig-ug-0006.html", + "title":"API Management", + "uri":"apig_03_0003.html", "doc_type":"usermanual", "p_code":"", "code":"25" }, { - "desc":"This section describes how to buy a dedicated gateway. You can create APIs and use them to provide services only after a dedicated gateway is created.There are some limit", + "desc":"An API group contains APIs used for the same service. You can manage APIs by group, and must create a group before creating an API.You can create an API group using the f", "product_code":"apig", - "title":"Buying a Dedicated Gateway", - "uri":"apig-ug-191004.html", + "title":"Creating an API Group", + "uri":"apig_03_0005.html", "doc_type":"usermanual", "p_code":"25", "code":"26" }, { - "desc":"You can modify the basic information and configuration parameters of dedicated gateways.To modify the basic information about a dedicated gateway, do as follows:", + "desc":"By importing Cloud Container Engine (CCE) workloads, you can open your CCE service capabilities through APIs.If your gateway does not support CCE workload import, contact", "product_code":"apig", - "title":"Modifying a Dedicated Gateway", - "uri":"apig-ug-200801.html", + "title":"Importing a CCE Workload", + "uri":"apig_03_0071.html", "doc_type":"usermanual", "p_code":"25", "code":"27" }, { - "desc":"VPC endpoints are secure and private channels for connecting VPCs to VPC endpoint services.APIs can be exposed and accessed across VPCs in the same region of the same clo", + "desc":"Before you expose an API, bind an independent domain name to the API group so that APIs in the group can be accessed with the domain name. A maximum of five independent d", "product_code":"apig", - "title":"Managing VPC Endpoints", - "uri":"apig-ug-0019.html", + "title":"Binding a Domain Name", + "uri":"apig_03_0006.html", "doc_type":"usermanual", "p_code":"25", "code":"28" }, { - "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "desc":"You can define environment variables to allow an API to be called in different environments.Environment variables are manageable and specific to environments. You can add", "product_code":"apig", - "title":"API Opening", - "uri":"apig-ug-0008.html", + "title":"Creating an Environment Variable", + "uri":"apig_03_0007.html", "doc_type":"usermanual", - "p_code":"", + "p_code":"25", "code":"29" }, { - "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "desc":"A gateway response is displayed if APIG fails to process an API request. APIG provides a set of default responses and also allows you to create responses with custom stat", "product_code":"apig", - "title":"API Group Management", - "uri":"apig-en-ug-180307014.html", + "title":"Creating a Gateway Response", + "uri":"apig_03_0008.html", "doc_type":"usermanual", - "p_code":"29", + "p_code":"25", "code":"30" }, { - "desc":"Before creating an API, you must create an API group. An API group contains different APIs used for the same service.Each API can only belong to one API group.After the A", + "desc":"You can selectively expose your backends by configuring their APIs in APIG. To create an API, perform the following steps:Configuring Frontend SettingsFrontend definition", "product_code":"apig", - "title":"Creating an API Group", - "uri":"apig-en-ug-180307015.html", + "title":"Creating an API", + "uri":"apig_03_0010.html", "doc_type":"usermanual", - "p_code":"30", + "p_code":"25", "code":"31" }, { - "desc":"Before you open an API, you must bind one or more independent domain names to the group to which the API belongs.In a dedicated gateway, you cannot bind the same independ", + "desc":"APIG supports gRPC API creation. gRPC is a modern, open-source, high-performance Remote Procedure Call (RPC) framework that can run in any environment. You only need to d", "product_code":"apig", - "title":"Binding a Domain Name", - "uri":"apig-en-ug-180327076.html", + "title":"Creating a gRPC API", + "uri":"apig_03_0078.html", "doc_type":"usermanual", - "p_code":"30", + "p_code":"25", "code":"32" }, { - "desc":"You can delete an API group if you do not require it.API groups that contain APIs cannot be deleted.You have created an API group.In the Operation column of the target AP", + "desc":"To improve API creation efficiency, you can clone an API with a custom name and path.Policies bound to an API cannot be cloned and can only be manually bound to the new A", "product_code":"apig", - "title":"Deleting an API Group", - "uri":"apig-en-ug-180307018.html", + "title":"Cloning an API", + "uri":"apig_03_0076.html", "doc_type":"usermanual", - "p_code":"30", + "p_code":"25", "code":"33" }, - { - "desc":"A gateway response is displayed if APIG fails to process an API request. APIG provides a set of default responses and also allows you to create gateway responses with cus", - "product_code":"apig", - "title":"Adding a Gateway Response", - "uri":"apig-lgug-200226001.html", - "doc_type":"usermanual", - "p_code":"30", - "code":"34" - }, - { - "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", - "product_code":"apig", - "title":"API Management", - "uri":"apig-en-ug-180307019.html", - "doc_type":"usermanual", - "p_code":"29", - "code":"35" - }, - { - "desc":"You can selectively expose your services by configuring their APIs in APIG.To create an API, set the basic information and define the API request, backend service, and re", - "product_code":"apig", - "title":"Creating an API", - "uri":"apig-en-ug-180307020.html", - "doc_type":"usermanual", - "p_code":"35", - "code":"36" - }, { "desc":"For security reasons, browsers restrict cross-origin requests initiated from within scripts. This means that a web application can only request resources from its origin.", "product_code":"apig", "title":"CORS", - "uri":"apig-en-ug-180621094.html", + "uri":"apig_03_0011.html", "doc_type":"usermanual", - "p_code":"35", - "code":"37" + "p_code":"25", + "code":"34" }, { - "desc":"After creating an API, debug it on the APIG console by setting HTTP headers and body parameters to verify whether the API is running normally.APIs with backend request pa", + "desc":"After creating an API, debug it on the APIG console by setting HTTP headers and body to verify whether the API is running normally.APIs with backend request paths contain", "product_code":"apig", "title":"Debugging an API", - "uri":"apig-en-ug-180307025.html", + "uri":"apig_03_0012.html", "doc_type":"usermanual", - "p_code":"35", - "code":"38" + "p_code":"25", + "code":"35" }, { - "desc":"APIs using app authentication can only be called by apps that have been authorized to call them.You can only authorize apps to call published APIs.You can authorize apps ", + "desc":"APIs using app authentication can only be called by credentials that have been authorized to call them.You can authorize credentials only to call APIs that use app authen", "product_code":"apig", - "title":"Authorizing Apps to Call an API", - "uri":"apig-en-ug-180307021.html", + "title":"Authorizing API Access", + "uri":"apig_03_0013.html", "doc_type":"usermanual", - "p_code":"35", - "code":"39" + "p_code":"25", + "code":"36" }, { "desc":"APIs can be called only after they have been published in an environment. You can publish APIs in different environments. APIG allows you to view the publication history ", "product_code":"apig", "title":"Publishing an API", - "uri":"apig-en-ug-180307023.html", + "uri":"apig_03_0014.html", "doc_type":"usermanual", - "p_code":"35", - "code":"40" + "p_code":"25", + "code":"37" }, { "desc":"You can remove APIs that you do not need from the environments where the APIs have been published.This operation will cause the APIs to be inaccessible in the environment", "product_code":"apig", "title":"Taking an API Offline", - "uri":"apig-en-ug-180307024.html", + "uri":"apig_03_0070.html", "doc_type":"usermanual", - "p_code":"35", + "p_code":"25", + "code":"38" + }, + { + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"apig", + "title":"Importing and Exorting APIs", + "uri":"apig_03_0082.html", + "doc_type":"usermanual", + "p_code":"25", + "code":"39" + }, + { + "desc":"Note the following restrictions and compatibility issues when importing or exporting APIs on APIG:APIG parameter restrictions:APIG does not support the configuration of r", + "product_code":"apig", + "title":"Restrictions and Compatibility", + "uri":"apig_03_0083.html", + "doc_type":"usermanual", + "p_code":"39", + "code":"40" + }, + { + "desc":"You can import Swagger and OpenAPI APIs to a new or existing API group on APIG. Before importing APIs, complete the extended definition of APIG.When you import APIs to a ", + "product_code":"apig", + "title":"Importing APIs", + "uri":"apig_03_0067.html", + "doc_type":"usermanual", + "p_code":"39", "code":"41" }, { - "desc":"You can delete published APIs you no longer require.Deleted APIs cannot be accessed by apps or users who were using the APIs, so make sure you notify users before the del", + "desc":"You can export APIs one by one or in batches as JSON, YAML, or YML files.Or choose API Management > APIs, and click Export APIs.", "product_code":"apig", - "title":"Deleting an API", - "uri":"apig-en-ug-180307027.html", + "title":"Exporting APIs", + "uri":"apig_03_0015.html", "doc_type":"usermanual", - "p_code":"35", + "p_code":"39", "code":"42" }, { - "desc":"APIG allows you to import Swagger 2.0 APIs to existing or new API groups. Swagger is an open-source tool built based on OpenAPI specifications to design, build, record, a", + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "product_code":"apig", - "title":"Importing APIs", - "uri":"apig-en-ug-181025104.html", + "title":"Extended Definition", + "uri":"apig_03_0084.html", "doc_type":"usermanual", - "p_code":"35", + "p_code":"39", "code":"43" }, { - "desc":"You can export APIs one by one or in batches as JSON or YAML files.You have created an API group and API.The export result is displayed on the right.", + "desc":"Meaning: Swagger-based apiKey authentication format, which defines an authentication mode provided by APIG.Scope of effect: Security Scheme Object (2.0)/Security Scheme O", "product_code":"apig", - "title":"Exporting APIs", - "uri":"apig-en-ug-181204105.html", + "title":"x-apigateway-auth-type", + "uri":"apig_03_0085.html", "doc_type":"usermanual", - "p_code":"35", + "p_code":"43", "code":"44" }, { - "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "desc":"Meaning: API request type, which can be public or private.Scope of effect: Operation Object (2.0)/Operation Object (3.0)Example:", "product_code":"apig", - "title":"Request Throttling", - "uri":"apig-en-ug-180307028.html", + "title":"x-apigateway-request-type", + "uri":"apig_03_0086.html", "doc_type":"usermanual", - "p_code":"29", + "p_code":"43", "code":"45" }, { - "desc":"Request throttling controls the number of times an API can be called within a time period to protect backend services.To provide stable, uninterrupted services, you can c", + "desc":"Meaning: Request URL matching mode, which can be NORMAL or SWA.Scope of effect: Operation Object (2.0)/Operation Object (3.0)Example:", "product_code":"apig", - "title":"Creating a Request Throttling Policy", - "uri":"apig-en-ug-180307029.html", + "title":"x-apigateway-match-mode", + "uri":"apig_03_0087.html", "doc_type":"usermanual", - "p_code":"45", + "p_code":"43", "code":"46" }, { - "desc":"You can delete request throttling policies you no longer require.You have created a request throttling policy.In the Operation column of the request throttling policy you", + "desc":"Meaning: Specifies whether CORS is supported. The value is of the Boolean type.Scope of effect: Operation Object (2.0)/Operation Object (3.0)Example:For the API request f", "product_code":"apig", - "title":"Deleting a Request Throttling Policy", - "uri":"apig-en-ug-180307032.html", + "title":"x-apigateway-cors", + "uri":"apig_03_0088.html", "doc_type":"usermanual", - "p_code":"45", + "p_code":"43", "code":"47" }, { - "desc":"If you want to control the number of API calls received from a specific app or tenant, add an excluded app or tenant to a request throttling policy.You have created an ap", + "desc":"Meaning: Whether to perform Base64 encoding on the request body used for interaction with FunctionGraph. The value is of the Boolean type.Scope of effect: Operation Objec", "product_code":"apig", - "title":"Adding an Excluded App or Tenant", - "uri":"apig-en-ug-180307033.html", + "title":"x-apigateway-is-send-fg-body-base64", + "uri":"apig_03_0106.html", "doc_type":"usermanual", - "p_code":"45", + "p_code":"43", "code":"48" }, { - "desc":"You can remove excluded apps or tenants from a request throttling policy. This section takes an excluded app as an example.You have created a request throttling policy.Yo", + "desc":"Meaning: API request method used by default if no HTTP request method is specified.Scope of effect: Path Item Object (2.0)/Path Item Object (3.0)Example:", "product_code":"apig", - "title":"Removing an Excluded App or Tenant", - "uri":"apig-en-ug-180307035.html", + "title":"x-apigateway-any-method", + "uri":"apig_03_0089.html", "doc_type":"usermanual", - "p_code":"45", + "p_code":"43", "code":"49" }, { - "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "desc":"Meaning: API backend definition.Scope of effect: Operation Object (2.0)/Operation Object (3.0)Example:", "product_code":"apig", - "title":"Access Control", - "uri":"apig-en-ug-180712096.html", + "title":"x-apigateway-backend", + "uri":"apig_03_0090.html", "doc_type":"usermanual", - "p_code":"29", + "p_code":"43", "code":"50" }, { - "desc":"Access control policies are a type of security measures provided by APIG. You can use them to allow or deny API access from specific IP addresses or accounts.Access contr", + "desc":"Meaning: API backend service definition.Scope of effect: x-apigateway-backendExample:", "product_code":"apig", - "title":"Creating an Access Control Policy", - "uri":"apig-en-ug-180712097.html", + "title":"x-apigateway-backend.parameters", + "uri":"apig_03_0091.html", "doc_type":"usermanual", - "p_code":"50", + "p_code":"43", "code":"51" }, { - "desc":"You can delete access control policies you no longer require.You have created an access control policy.In the Operation column of the access control policy you want to de", + "desc":"Meaning: HTTP backend service definition.Scope of effect: x-apigateway-backendExample:", "product_code":"apig", - "title":"Deleting an Access Control Policy", - "uri":"apig-en-ug-180712100.html", + "title":"x-apigateway-backend.httpEndpoints", + "uri":"apig_03_0092.html", "doc_type":"usermanual", - "p_code":"50", + "p_code":"43", "code":"52" }, { - "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "desc":"Meaning: HTTP VPC backend service definition.Scope of effect: x-apigateway-backendExample:", "product_code":"apig", - "title":"Environment Management", - "uri":"apig-en-ug-180307036.html", + "title":"x-apigateway-backend.httpVpcEndpoints", + "uri":"apig_03_0093.html", "doc_type":"usermanual", - "p_code":"29", + "p_code":"43", "code":"53" }, { - "desc":"An API can be called in different environments, such as production, testing, and development environments. RELEASE is the default environment provided by APIG. You can de", + "desc":"Meaning: Function backend service definition.Scope of effect: x-apigateway-backendExample:", "product_code":"apig", - "title":"Creating an Environment and Environment Variable", - "uri":"apig-en-ug-180307037.html", + "title":"x-apigateway-backend.functionEndpoints", + "uri":"apig_03_0094.html", "doc_type":"usermanual", - "p_code":"53", + "p_code":"43", "code":"54" }, { - "desc":"You can delete environments you no longer require.You have created an environment.You can delete an environment only if no APIs have been published in the environment.", + "desc":"Meaning: Mock backend service definition.Scope of effect: x-apigateway-backendExample:", "product_code":"apig", - "title":"Deleting an Environment", - "uri":"apig-en-ug-180307039.html", + "title":"x-apigateway-backend.mockEndpoints", + "uri":"apig_03_0095.html", "doc_type":"usermanual", - "p_code":"53", + "p_code":"43", "code":"55" }, { - "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "desc":"Meaning: API backend policy.Scope of effect: Operation Object (2.0)/Operation Object (3.0)Example:", "product_code":"apig", - "title":"Signature Key Management", - "uri":"apig-en-ug-180307040.html", + "title":"x-apigateway-backend-policies", + "uri":"apig_03_0096.html", "doc_type":"usermanual", - "p_code":"29", + "p_code":"43", "code":"56" }, { - "desc":"Signature keys are used by backend services to verify the identity of APIG.A signature key consists of a key and secret, and can be used only after being bound to an API.", + "desc":"Meaning: API backend policy conditions.Scope of effect: x-apigateway-backend-policiesExample:", "product_code":"apig", - "title":"Creating and Using a Signature Key", - "uri":"apig-en-ug-180307041.html", + "title":"x-apigateway-backend-policies.conditions", + "uri":"apig_03_0097.html", "doc_type":"usermanual", - "p_code":"56", + "p_code":"43", "code":"57" }, { - "desc":"You can delete signature keys you no longer require.You have created a signature key.In the Operation column of the signature key you want to delete, click Delete.Click t", + "desc":"Meaning: Request throttling policy.Scope of effect: Operation Object (2.0)/Operation Object (3.0)Example:", "product_code":"apig", - "title":"Deleting a Signature Key", - "uri":"apig-en-ug-180307045.html", + "title":"x-apigateway-ratelimit", + "uri":"apig_03_0098.html", "doc_type":"usermanual", - "p_code":"56", + "p_code":"43", "code":"58" }, { - "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "desc":"Meaning: Mapping between a request throttling policy name and limit values.Scope of effect: Swagger ObjectExample:", "product_code":"apig", - "title":"VPC Channel Management", - "uri":"apig-en-ug-180425080.html", + "title":"x-apigateway-ratelimits", + "uri":"apig_03_0099.html", "doc_type":"usermanual", - "p_code":"29", + "p_code":"43", "code":"59" }, { - "desc":"VPC channels allow services deployed in VPCs to be accessed through their subnets, lowering latency and balancing loads of backend services.After creating a VPC channel, ", + "desc":"Meaning: Definition of a request throttling policy.Scope of effect: x-apigateway-ratelimitsExample:", "product_code":"apig", - "title":"Creating a VPC Channel", - "uri":"apig-en-ug-180425081.html", + "title":"x-apigateway-ratelimits.policy", + "uri":"apig_03_0100.html", "doc_type":"usermanual", - "p_code":"59", + "p_code":"43", "code":"60" }, { - "desc":"You can delete VPC channels you no longer require.VPC channels that are currently in use by published APIs cannot be deleted.You have created a VPC channel.In the Operati", + "desc":"Meaning: Definition of a special request throttling policy.Scope of effect: x-apigateway-ratelimits.policyExample:", "product_code":"apig", - "title":"Deleting a VPC Channel", - "uri":"apig-en-ug-180425083.html", + "title":"x-apigateway-ratelimits.policy.special", + "uri":"apig_03_0101.html", "doc_type":"usermanual", - "p_code":"59", + "p_code":"43", "code":"61" }, { - "desc":"You can modify the health check configurations of a VPC channel to meet service requirements.You have created a VPC channel.Health check configurationsParameterDescriptio", + "desc":"Meaning: Access control policy.Scope of effect: Operation Object (2.0)/Operation Object (3.0)Example:", "product_code":"apig", - "title":"Editing Health Check Configurations", - "uri":"apig-en-ug-180425084.html", + "title":"x-apigateway-access-control", + "uri":"apig_03_0102.html", "doc_type":"usermanual", - "p_code":"59", + "p_code":"43", "code":"62" }, { - "desc":"You can add or remove cloud servers and edit cloud server weights for VPC channels to meet service requirements.You have created a VPC channel.Adding cloud serversClick S", + "desc":"Meaning: Mapping between an access control policy name and limit settings.Scope of effect: Swagger ObjectExample:", "product_code":"apig", - "title":"Editing Cloud Server Configurations of a VPC Channel", - "uri":"apig-en-ug-180502087.html", + "title":"x-apigateway-access-controls", + "uri":"apig_03_0103.html", "doc_type":"usermanual", - "p_code":"59", + "p_code":"43", "code":"63" }, { - "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "desc":"Meaning: Definition of an access control policy.Scope of effect: x-apigateway-access-controlsExample:", "product_code":"apig", - "title":"Custom Authorizers", - "uri":"apic-ug-190430104.html", + "title":"x-apigateway-access-controls.policy", + "uri":"apig_03_0104.html", "doc_type":"usermanual", - "p_code":"29", + "p_code":"43", "code":"64" }, { - "desc":"This feature is currently unavailable because FunctionGraph has not been launched.APIG supports custom authentication of both frontend and backend requests.Frontend custo", + "desc":"Meaning: API plug-in service.Scope of effect: Operation Object (2.0)/Operation Object (3.0)Example:", "product_code":"apig", - "title":"Creating a Custom Authorizer", - "uri":"apic-ug-190430105.html", + "title":"x-apigateway-plugins", + "uri":"apig_03_0105.html", "doc_type":"usermanual", - "p_code":"64", + "p_code":"43", "code":"65" }, { - "desc":"You can delete custom authorizers you no longer require.Custom authentication is implemented using FunctionGraph and not supported if FunctionGraph is unavailable in the ", + "desc":"The APIs page displays all APIs of the current gateway, including the URL, running environment, and authentication mode.", "product_code":"apig", - "title":"Deleting a Custom Authorizer", - "uri":"apic-ug-190430106.html", + "title":"Viewing APIs", + "uri":"apig_03_0016.html", "doc_type":"usermanual", - "p_code":"64", + "p_code":"25", "code":"66" }, + { + "desc":"APIG supports HTTP/2, which is a major revision of HTTP and was originally named HTTP 2.0. It provides binary encoding, request multiplexing over a single connection, and", + "product_code":"apig", + "title":"HTTP 2.0", + "uri":"apig_03_0069.html", + "doc_type":"usermanual", + "p_code":"25", + "code":"67" + }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "product_code":"apig", - "title":"Plug-ins", - "uri":"apig-ug-0001.html", + "title":"API Policies", + "uri":"apig_03_0017.html", "doc_type":"usermanual", - "p_code":"29", - "code":"67" + "p_code":"", + "code":"68" }, { - "desc":"APIG provides flexible extension capabilities for APIs through plug-ins.Plug-in parameters will be stored as plaintext. To prevent information leakage, do not contain sen", + "desc":"APIG provides flexible API control policies.Policy parameters will be stored as plaintext. To prevent information leakage, do not contain sensitive information in these p", "product_code":"apig", - "title":"Creating a Plug-in", - "uri":"apig-ug-0004.html", + "title":"Creating a Policy and Binding It to APIs", + "uri":"apig_03_0019.html", "doc_type":"usermanual", - "p_code":"67", - "code":"68" + "p_code":"68", + "code":"69" }, { "desc":"For security purposes, the browser restricts cross-domain requests from being initiated from a page script. In this case, the page can access only the resources from the ", "product_code":"apig", - "title":"CORS Plug-in", - "uri":"apig-ug-0002.html", + "title":"CORS", + "uri":"apig_03_0021.html", "doc_type":"usermanual", - "p_code":"67", - "code":"69" + "p_code":"68", + "code":"70" }, { "desc":"HTTP response headers are part of the response returned by APIG to a client that calls an API. You can customize HTTP response headers that will be contained in an API re", "product_code":"apig", - "title":"HTTP Response Header Management Plug-in", - "uri":"apig-ug-0005.html", + "title":"HTTP Response Header Management", + "uri":"apig_03_0022.html", "doc_type":"usermanual", - "p_code":"67", - "code":"70" - }, - { - "desc":"The request throttling plug-in limits the number of times an API can be called within a specific time period. It supports parameter-based, basic, and excluded throttling.", - "product_code":"apig", - "title":"Request Throttling Plug-in", - "uri":"apig-ug-0015.html", - "doc_type":"usermanual", - "p_code":"67", + "p_code":"68", "code":"71" }, { - "desc":"You can delete plug-ins you no longer require. To delete a plug-in that has been bound to APIs, unbind the plug-in from the APIs and then delete it.You have created a plu", + "desc":"A request throttling 2.0 policy limits the number of times that an API can be called within a specific time period. Parameter-based, basic, and excluded throttling is sup", "product_code":"apig", - "title":"Deleting a Plug-in", - "uri":"apig-ug-0003.html", + "title":"Request Throttling 2.0", + "uri":"apig_03_0054.html", "doc_type":"usermanual", - "p_code":"67", + "p_code":"68", "code":"72" }, { - "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "desc":"Kafka log push policies push calling logs of open APIs to Kafka for analysis.If your gateway does not support this policy, contact technical support to upgrade the gatewa", "product_code":"apig", - "title":"Monitoring", - "uri":"apig-en-ug-180413077.html", + "title":"Kafka Log Push", + "uri":"apig_03_0061.html", "doc_type":"usermanual", - "p_code":"29", + "p_code":"68", "code":"73" }, { - "desc":"This section describes the metrics that APIG reports to the Cloud Eye service. You can view metrics and alarms by using the Cloud Eye console.Dedicated gateway: SYS.APIC", + "desc":"Circuit breaker policies protect your backend services when a performance issue occurs. If the backend service of an API times out for N consecutive times or if the laten", "product_code":"apig", - "title":"APIG Metrics", - "uri":"apig-en-ug-180427085.html", + "title":"Circuit Breaker", + "uri":"apig_03_0023.html", "doc_type":"usermanual", - "p_code":"73", + "p_code":"68", "code":"74" }, { - "desc":"You can create alarm rules to monitor the status of your APIs.An alarm rule consists of a rule name, monitored objects, metrics, alarm thresholds, monitoring interval, an", + "desc":"You can configure your own service to authenticate API requests. APIG first invokes this service for authentication, and then invokes the backend service after receiving ", "product_code":"apig", - "title":"Creating Alarm Rules", - "uri":"apig-en-ug-180524089.html", + "title":"Third-Party Authorizer", + "uri":"apig_03_0077.html", "doc_type":"usermanual", - "p_code":"73", + "p_code":"68", "code":"75" }, { - "desc":"Cloud Eye monitors the status of your APIs and allows you to view their metrics.You have created an API group and API.API metrics are displayed on the Dashboard tab page.", + "desc":"Request throttling limits the number of times APIs can be called by a user or app within a specific time period to protect backend services. The throttling can be down to", "product_code":"apig", - "title":"Viewing Metrics", - "uri":"apig-en-ug-180427086.html", + "title":"Request Throttling", + "uri":"apig_03_0025.html", "doc_type":"usermanual", - "p_code":"73", + "p_code":"68", "code":"76" }, { - "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "desc":"Access control policies are a type of security measures provided by APIG. You can use them to allow or deny API access from specific IP addresses, account names, or accou", "product_code":"apig", - "title":"API Calling", - "uri":"apig-ug-0009.html", + "title":"Access Control", + "uri":"apig_03_0027.html", "doc_type":"usermanual", - "p_code":"", + "p_code":"68", "code":"77" }, { - "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "desc":"Signature keys are used by backend services to verify the identity of APIG.A signature key consists of a key and secret, and can be used only after being bound to an API.", "product_code":"apig", - "title":"App Management", - "uri":"apig-en-ug-180307048.html", + "title":"Signature Keys", + "uri":"apig_03_0028.html", "doc_type":"usermanual", - "p_code":"77", + "p_code":"68", "code":"78" }, { - "desc":"For an API that uses app authentication, you can create an app and use the app and its ID and key pair (AppKey and AppSecret) to call the API. You can use an app to call ", + "desc":"APIG supports custom authentication of both frontend and backend requests.Frontend custom authentication: If you already have an authentication system, you can configure ", "product_code":"apig", - "title":"Creating an App and Obtaining Authorization", - "uri":"apig-en-ug-180307049.html", + "title":"Custom Authorizers", + "uri":"apig_03_0029.html", "doc_type":"usermanual", - "p_code":"78", + "p_code":"68", "code":"79" }, { - "desc":"You can delete apps you no longer require.You have created an app.In the Operation column of the app you want to delete, click Delete.Click the name of the target app, an", + "desc":"API groups that contain HTTPS-compatible APIs must have their independent domain names bound with SSL certificates. SSL certificates are used for data encryption and iden", "product_code":"apig", - "title":"Deleting an App", - "uri":"apig-en-ug-180307051.html", + "title":"SSL Certificates", + "uri":"apig_03_0055.html", "doc_type":"usermanual", - "p_code":"78", + "p_code":"68", "code":"80" }, { - "desc":"You can reset the AppSecret of an app. The AppKey is unique and cannot be reset. When you reset the AppSecret, it becomes invalid and APIs bound to the app cannot be call", + "desc":"Load balance channels expose your services through dedicated gateways, and are accessed through subnets in VPCs for lower latency. The server channel balances loads of ba", "product_code":"apig", - "title":"Resetting the AppSecret of an App", - "uri":"apig-en-ug-180307053.html", + "title":"Load Balance Channels", + "uri":"apig_03_0040.html", "doc_type":"usermanual", - "p_code":"78", + "p_code":"68", "code":"81" }, { - "desc":"AppCodes are identity credentials of an app used to call APIs in simple authentication mode. In this mode, the X-Apig-AppCode parameter (whose value is an AppCode on the ", + "desc":"An API can be called in different environments, such as production, testing, and development environments. RELEASE is the default environment provided by APIG.After the e", "product_code":"apig", - "title":"Adding an AppCode for Simple Authentication", - "uri":"apig-lgug-200227001.html", + "title":"Managing Environments", + "uri":"apig_03_0041.html", "doc_type":"usermanual", - "p_code":"78", + "p_code":"68", "code":"82" }, - { - "desc":"You can view the details of an API to which an app has been bound.You have created an app.The app has been bound to an API.", - "product_code":"apig", - "title":"Viewing API Details", - "uri":"apig-en-ug-180307054.html", - "doc_type":"usermanual", - "p_code":"78", - "code":"83" - }, - { - "desc":"This section describes how to obtain and analyze the API calling logs of dedicated gateways.APIs have been called.Fields in access logs are separated using spaces. The fo", - "product_code":"apig", - "title":"Log Analysis", - "uri":"en-us_topic_0000001174497029.html", - "doc_type":"usermanual", - "p_code":"77", - "code":"84" - }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "product_code":"apig", - "title":"Calling Published APIs", - "uri":"apig-ug-0010.html", + "title":"Credentials", + "uri":"apig_03_0030.html", "doc_type":"usermanual", - "p_code":"77", + "p_code":"", + "code":"83" + }, + { + "desc":"For APIs that use app authentication, create credentials to generate credential IDs and key/secret pairs. When calling such an API, bind a credential to the API, use the ", + "product_code":"apig", + "title":"Creating a Credential and Binding It to APIs", + "uri":"apig_03_0056.html", + "doc_type":"usermanual", + "p_code":"83", + "code":"84" + }, + { + "desc":"Reset the secret of a credential as necessary. After resetting, the original secret becomes invalid and APIs to which the credential is bound cannot be called. To call th", + "product_code":"apig", + "title":"Resetting Secret", + "uri":"apig_03_0057.html", + "doc_type":"usermanual", + "p_code":"83", "code":"85" }, { - "desc":"Before calling APIs, obtain the request information from the API provider, including the access domain name, protocol, method, path, and request parameters.Obtain APIs: f", + "desc":"AppCodes are identity credentials of a credential used to call APIs in simple authentication mode. In this mode, the X-Apig-AppCode parameter (whose value is an AppCode o", "product_code":"apig", - "title":"Calling APIs", - "uri":"apig-ug-0011.html", + "title":"Adding an AppCode for Simple Authentication", + "uri":"apig_03_0058.html", "doc_type":"usermanual", - "p_code":"85", + "p_code":"83", "code":"86" }, { - "desc":"The following table describes the response headers that APIG adds to the response returned when an API is called.X-Apig-Mode: debug indicates API debugging information.", + "desc":"A credential quota policy limits the number of API calls that a credential can make during a specified period.Existing policy: Select a policy.New policy: Configure a pol", "product_code":"apig", - "title":"Response Headers", - "uri":"apig-en-ug-180830102.html", + "title":"Binding a Credential Quota Policy", + "uri":"apig_03_0059.html", "doc_type":"usermanual", - "p_code":"85", + "p_code":"83", "code":"87" }, { - "desc":"Table 1 lists the error codes that you may encounter when calling APIs.For details about the error codes that may occur when you manage APIs, see section \"Error Codes\" in", + "desc":"As a protection mechanism for backend services, access control policies control the client (API caller) IP addresses that can access APIs. You can bind an access control ", "product_code":"apig", - "title":"Error Codes", - "uri":"apig-en-ug-180530090.html", + "title":"Binding an Access Control Policy", + "uri":"apig_03_0060.html", "doc_type":"usermanual", - "p_code":"85", + "p_code":"83", "code":"88" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "product_code":"apig", - "title":"Permissions Management", - "uri":"apig-ug-190529107.html", + "title":"Monitoring & Analysis", + "uri":"apig_03_0031.html", "doc_type":"usermanual", "p_code":"", "code":"89" }, { - "desc":"This topic describes how to use Identity and Access Management (IAM) to implement permissions control for your APIG resources. With IAM, you can:Create IAM users for empl", + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "product_code":"apig", - "title":"Creating a User and Granting APIG Permissions", - "uri":"apig-ug-190529109.html", + "title":"API Monitoring", + "uri":"apig_03_0072.html", "doc_type":"usermanual", "p_code":"89", "code":"90" }, { - "desc":"Custom policies can be created to supplement the system-defined policies of APIG. For the actions that can be added to custom policies, see section \"Permissions Policies ", + "desc":"This section describes the metrics that APIG reports to the Cloud Eye service. You can view metrics and alarms by using the Cloud Eye console.SYS.APIC", "product_code":"apig", - "title":"APIG Custom Policies", - "uri":"apig-custom-policy.html", + "title":"Monitoring Metrics", + "uri":"apig_03_0032.html", "doc_type":"usermanual", - "p_code":"89", + "p_code":"90", "code":"91" }, { - "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "desc":"You can create alarm rules to monitor the status of your APIs.An alarm rule consists of a rule name, monitored objects, metrics, alarm thresholds, monitoring interval, an", "product_code":"apig", - "title":"Key Operations Recorded by CTS", - "uri":"apig-ug-0020.html", + "title":"Creating Alarm Rules", + "uri":"apig_03_0033.html", "doc_type":"usermanual", - "p_code":"", + "p_code":"90", "code":"92" }, { - "desc":"If you want to collect, record, or query operation logs for APIG in common scenarios such as security analysis, audit, and problem locating, enable Cloud Trace Service (C", + "desc":"Cloud Eye monitors the status of your APIs and allows you to view their metrics.View the call statistics of an API, including Requests, Latency (ms), Data Traffic (bytes)", "product_code":"apig", - "title":"APIG operations that can be recorded by CTS", - "uri":"apig-en-ug-180307058.html", + "title":"Viewing Metrics", + "uri":"apig_03_0034.html", "doc_type":"usermanual", - "p_code":"92", + "p_code":"90", "code":"93" }, { - "desc":"Query audit logs by following the procedure in section \"Querying Real-Time Traces\" in the Cloud Trace Service User Guide.", + "desc":"This section describes how to obtain and analyze the API calling logs of a dedicatedgateway.APIs have been called.Fields in access logs are separated using spaces. The fo", "product_code":"apig", - "title":"Querying Audit Logs", - "uri":"apig-ug-0021.html", + "title":"Log Analysis", + "uri":"apig_03_0042.html", "doc_type":"usermanual", - "p_code":"92", + "p_code":"89", "code":"94" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "product_code":"apig", - "title":"FAQs", - "uri":"apig-ug-cmccfaq.html", + "title":"Gateway Management", + "uri":"apig_03_0035.html", "doc_type":"usermanual", "p_code":"", "code":"95" }, { - "desc":"How Do I Set the Backend Address If I Will Not Use a VPC Channel (or Load Balance Channel)?How Can I Configure the Backend Service Address?Can I Specify a Private Network", + "desc":"This section describes how to create a gateway. You can create APIs and use them to provide services only after a gateway is created.There are some limitations on creatin", "product_code":"apig", - "title":"Common FAQs", - "uri":"apig-faq-190803.html", + "title":"Creating a Gateway", + "uri":"apig_03_0037.html", "doc_type":"usermanual", "p_code":"95", "code":"96" }, + { + "desc":"You can view and modify the configuration of your gateways on the console.", + "product_code":"apig", + "title":"Viewing or Modifying Gateway Information", + "uri":"apig_03_0038.html", + "doc_type":"usermanual", + "p_code":"95", + "code":"97" + }, + { + "desc":"This section describes how to configure common parameters for a gateway to adjust component functions.Modifying gateway configuration parameters will interrupt services. ", + "product_code":"apig", + "title":"Configuring Parameters", + "uri":"apig_03_0039.html", + "doc_type":"usermanual", + "p_code":"95", + "code":"98" + }, + { + "desc":"Tags classify your gateways to facilitate search, analysis, and management.You can search, analyze, and manage your resources on the Tag Management Service (TMS) console.", + "product_code":"apig", + "title":"Managing Tags", + "uri":"apig_03_0075.html", + "doc_type":"usermanual", + "p_code":"95", + "code":"99" + }, + { + "desc":"VPC endpoints are secure and private channels for connecting VPCs to VPC endpoint services.APIs can be exposed and accessed across VPCs in the same region of the same clo", + "product_code":"apig", + "title":"Managing VPC Endpoints", + "uri":"apig_03_0063.html", + "doc_type":"usermanual", + "p_code":"95", + "code":"100" + }, + { + "desc":"If the specifications of a gateway cannot meet your service requirements, upgrade the specifications.During the specification change, the persistent connection is intermi", + "product_code":"apig", + "title":"Modifying Specifications", + "uri":"apig_03_0064.html", + "doc_type":"usermanual", + "p_code":"95", + "code":"101" + }, + { + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"apig", + "title":"Published API Calling", + "uri":"apig_03_0045.html", + "doc_type":"usermanual", + "p_code":"", + "code":"102" + }, + { + "desc":"You can call APIs opened by others in APIG.An API can be accessed 1000 times by using the debugging domain name allocated when the API's group is created.If the CA parame", + "product_code":"apig", + "title":"Calling APIs", + "uri":"apig_03_0046.html", + "doc_type":"usermanual", + "p_code":"102", + "code":"103" + }, + { + "desc":"The following table describes the response headers that APIG adds to the response returned when an API is called.X-Apig-Mode: debug indicates API debugging information.", + "product_code":"apig", + "title":"Response Headers", + "uri":"apig_03_0047.html", + "doc_type":"usermanual", + "p_code":"102", + "code":"104" + }, + { + "desc":"The following table lists the error codes that you may encounter when calling APIs.For details about the error codes that may occur when you manage APIs, see section \"Err", + "product_code":"apig", + "title":"Error Codes", + "uri":"apig_03_0048.html", + "doc_type":"usermanual", + "p_code":"102", + "code":"105" + }, + { + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"apig", + "title":"Permissions Management", + "uri":"apig_03_0049.html", + "doc_type":"usermanual", + "p_code":"", + "code":"106" + }, + { + "desc":"This topic describes how to use Identity and Access Management (IAM) to implement fine-grained permissions control for your APIG resources. With IAM, you can:Create IAM u", + "product_code":"apig", + "title":"Creating a User and Granting APIG Permissions", + "uri":"apig_03_0050.html", + "doc_type":"usermanual", + "p_code":"106", + "code":"107" + }, + { + "desc":"Custom policies can be created to supplement the system-defined policies of APIG. For the actions that can be added to custom policies, see .You can create custom policie", + "product_code":"apig", + "title":"APIG Custom Policies", + "uri":"apig_03_0051.html", + "doc_type":"usermanual", + "p_code":"106", + "code":"108" + }, + { + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"apig", + "title":"Auditing", + "uri":"apig_03_0065.html", + "doc_type":"usermanual", + "p_code":"", + "code":"109" + }, + { + "desc":"If you want to collect, record, or query operation logs for APIG in common scenarios such as security analysis, audit, and problem locating, enable Cloud Trace Service (C", + "product_code":"apig", + "title":"APIG Operations Recorded by CTS", + "uri":"apig_03_0052.html", + "doc_type":"usermanual", + "p_code":"109", + "code":"110" + }, + { + "desc":"After you enable CTS and the management tracker is created, CTS starts recording operations on cloud resources. CTS stores operation records generated in the last seven d", + "product_code":"apig", + "title":"Querying Real-Time Traces", + "uri":"apig_03_0053.html", + "doc_type":"usermanual", + "p_code":"109", + "code":"111" + }, + { + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"apig", + "title":"FAQs", + "uri":"apig_03_0079.html", + "doc_type":"usermanual", + "p_code":"", + "code":"112" + }, + { + "desc":"How Do I Set the Backend Address If I Will Not Use a VPC Channel (or Load Balance Channel)?How Can I Configure the Backend Service Address?Can I Specify a Private Network", + "product_code":"apig", + "title":"Common FAQs", + "uri":"index.html", + "doc_type":"usermanual", + "p_code":"112", + "code":"113" + }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "product_code":"apig", "title":"API Creation", "uri":"apig-faq-create.html", "doc_type":"usermanual", - "p_code":"95", - "code":"97" + "p_code":"112", + "code":"114" }, { - "desc":"The creation of APIs is free of charge. If you cannot create APIs, your account must be in arrears.", - "product_code":"apig", - "title":"Why Can't I Create APIs?", - "uri":"apig-faq-2005007.html", - "doc_type":"usermanual", - "p_code":"97", - "code":"98" - }, - { - "desc":"API responses are defined by backend services (API providers). API Gateway (APIG) only transparently transmits responses to API callers.", + "desc":"There are two types of responses:Gateway response codes: returned by the gateway for API requests that are throttled, denied, or failed in authentication. For details abo", "product_code":"apig", "title":"How Do I Define Response Codes for an API?", "uri":"apig-faq-2005001.html", "doc_type":"usermanual", - "p_code":"97", - "code":"99" + "p_code":"114", + "code":"115" }, { - "desc":"Use the port of the API backend service.", + "desc":"Use the port of the API backend service.For details about how to configure the API backend, see section \"Creating an API\" in the API Gateway User Guide.", "product_code":"apig", "title":"How Do I Specify the Host Port for a VPC Channel (or Load Balance Channel)?", "uri":"apig-faq-2005002.html", "doc_type":"usermanual", - "p_code":"97", - "code":"100" + "p_code":"114", + "code":"116" }, { - "desc":"You can specify the backend address as a public domain name or a public IP address, such as the Elastic IP (EIP) of an Elastic Cloud Server (ECS).", + "desc":"Specify the backend address as a public domain name or a public IP address, such as the Elastic IP (EIP) of an Elastic Cloud Server (ECS). To do this, enable public outbo", "product_code":"apig", "title":"How Do I Set the Backend Address If I Will Not Use a VPC Channel (or Load Balance Channel)?", "uri":"apig-faq-2005004.html", "doc_type":"usermanual", - "p_code":"97", - "code":"101" + "p_code":"114", + "code":"117" }, { - "desc":"Configure the backend service address as an ECS EIP, or the public IP address or domain name of your own server.", + "desc":"Configure the backend service address as an ECS EIP, or the public IP address or domain name of your own server.For details about how to configure the API backend, see se", "product_code":"apig", "title":"How Can I Configure the Backend Service Address?", "uri":"apig-faq-190627028.html", "doc_type":"usermanual", - "p_code":"97", - "code":"102" + "p_code":"114", + "code":"118" }, { "desc":"For dedicated gateways, you can use private network load balancer addresses.Alternatively, you can use the EIP bound to a public network load balancer.", @@ -923,8 +1067,8 @@ "title":"Can I Specify a Private Network Load Balancer Address for the Backend Service?", "uri":"apig-faq-2005003.html", "doc_type":"usermanual", - "p_code":"97", - "code":"103" + "p_code":"114", + "code":"119" }, { "desc":"If you use a dedicated gateway, you can specify either an IP address that belongs to the same subnet where the gateway is deployed, or the private address of a local data", @@ -932,17 +1076,17 @@ "title":"Can I Specify the Backend Address as a Subnet IP Address?", "uri":"apig-faq-2005006.html", "doc_type":"usermanual", - "p_code":"97", - "code":"104" + "p_code":"114", + "code":"120" }, { - "desc":"Yes. APIG supports the configuration of multiple backend endpoints through a VPC channel (also called \"load balance channel\"). You can add multiple cloud servers to each ", + "desc":"YesAPIG supports the configuration of multiple backend endpoints through a VPC channel (also called \"load balance channel\"). You can add multiple cloud servers to each VP", "product_code":"apig", "title":"Does APIG Support Multiple Backend Endpoints?", - "uri":"apig-en-faq-180606012.html", + "uri":"apig-faq-180606012.html", "doc_type":"usermanual", - "p_code":"97", - "code":"105" + "p_code":"114", + "code":"121" }, { "desc":"If you are using a dedicated gateway, add an A record that points the independent domain name to the inbound access address of the gateway. You can bind five independent ", @@ -950,17 +1094,17 @@ "title":"What Should I Do After Applying for an Independent Domain Name?", "uri":"apig-faq-2005009.html", "doc_type":"usermanual", - "p_code":"97", - "code":"106" + "p_code":"114", + "code":"122" }, { - "desc":"In a dedicated gateway, you can add a private domain name, and add an A record to point the domain name to the inbound access address of the gateway.", + "desc":"In a dedicated gateway, you can add a private domain name (filing not required), and add an A record to point the domain name to the inbound access address of the gateway", "product_code":"apig", "title":"Can I Bind Private Domain Names for API Access?", "uri":"apig-faq-2005021.html", "doc_type":"usermanual", - "p_code":"97", - "code":"107" + "p_code":"114", + "code":"123" }, { "desc":"Ensure that CORS has been enabled for the API.Go to the API details page, click Edit, and check whether CORS is enabled. If it is not, enable it.Go to the API details pag", @@ -968,17 +1112,17 @@ "title":"Why Does an API Failed to Be Called Across Domains?", "uri":"apig-faq-190627027.html", "doc_type":"usermanual", - "p_code":"97", - "code":"108" + "p_code":"114", + "code":"124" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "product_code":"apig", "title":"API Calling", - "uri":"apig-en-faq-180919017.html", + "uri":"apig-faq-180919017.html", "doc_type":"usermanual", - "p_code":"95", - "code":"109" + "p_code":"112", + "code":"125" }, { "desc":"API calling failures may occur in three scenarios: within a VPC, between VPCs, and on a public network.Within a VPC: Check whether the domain name is the same as that aut", @@ -986,26 +1130,26 @@ "title":"What Are the Possible Causes for an API Calling Failure?", "uri":"apig-faq-2005010.html", "doc_type":"usermanual", - "p_code":"109", - "code":"110" + "p_code":"125", + "code":"126" }, { - "desc":"If an error code is returned when you call your own APIs, see User Guide > Calling Published APIs > Error Codes.If an error code is returned when you manage your APIs, se", + "desc":"If an error code is returned when you call your own APIs, see Error Codes.If an error code is returned when you manage your APIs,see section \"Error Codes\" in the API Gate", "product_code":"apig", "title":"What Should I Do If an Error Code Is Returned During API Calling?", "uri":"apig-faq-2005012.html", "doc_type":"usermanual", - "p_code":"109", - "code":"111" + "p_code":"125", + "code":"127" }, { - "desc":"The request URL (including request parameters) is too long. Place the request parameters in the request body and try again.", + "desc":"The request URL (including request parameters) is too long. Place the request parameters in the request body and try again.For details about API calling errors, see secti", "product_code":"apig", - "title":"Why Am I Seeing the Error Message \"414 Request-URI Too Large\" When I Call an API?", + "title":"Why Am I Seeing the Error Message \"414 Request URI too large\" When I Call an API?", "uri":"apig-faq-2005022.html", "doc_type":"usermanual", - "p_code":"109", - "code":"112" + "p_code":"125", + "code":"128" }, { "desc":"If an open API in APIG failed to be called, troubleshoot the failure by performing the following operations:The domain name, request method, or path used for calling the ", @@ -1013,26 +1157,26 @@ "title":"What Should I Do If \"The API does not exist or has not been published in the environment.\" Is Displayed?", "uri":"apig-faq-19123002.html", "doc_type":"usermanual", - "p_code":"109", - "code":"113" + "p_code":"125", + "code":"129" }, { "desc":"Check whether the backend service is accessible, and modify the backend service if it is inaccessible.Check the ECS security group configurations of the backend service a", "product_code":"apig", "title":"Why Am I Seeing the Message \"No backend available\"?", - "uri":"apig-en-faq-181016018.html", + "uri":"apig-faq-181016018.html", "doc_type":"usermanual", - "p_code":"109", - "code":"114" + "p_code":"125", + "code":"130" }, { "desc":"The following table lists the possible causes if a backend service fails to be invoked or the invocation times out.", "product_code":"apig", "title":"What Are the Possible Causes If the Message \"Backend unavailable\" or \"Backend timeout\" Is Displayed?", - "uri":"en-us_topic_0087908599.html", + "uri":"apig_0087908599.html", "doc_type":"usermanual", - "p_code":"109", - "code":"115" + "p_code":"125", + "code":"131" }, { "desc":"An error message indicating a domain name resolution failure is displayed when the backend service is called, although private domain name resolution is completed for the", @@ -1040,98 +1184,98 @@ "title":"Why Am I Seeing the Message \"Backend domain name resolution failed\" When a Backend Service Is Called?", "uri":"apig-faq-0004.html", "doc_type":"usermanual", - "p_code":"109", - "code":"116" + "p_code":"125", + "code":"132" }, { - "desc":"Modification of the backend_timeout parameter in a dedicated gateway does not take effect.The Timeout (ms) parameter on the Define Backend Request page is not modified.Lo", + "desc":"Modification of the backend_timeout parameter in gateways does not take effect.The Timeout (ms) parameter on the Define Backend Request page is not modified.Log in to the", "product_code":"apig", "title":"Why Doesn't Modification of the backend_timeout Parameter Take Effect?", "uri":"apig-faq-19122004.html", "doc_type":"usermanual", - "p_code":"109", - "code":"117" + "p_code":"125", + "code":"133" }, { - "desc":"By default, the API in the RELEASE environment is called. If you want to call the same API in another environment, add the request header X-Stage to specify the environme", + "desc":"By default, the API in the RELEASE environment is called.If you want to call the same API in another environment, add the request header X-Stage to specify the environmen", "product_code":"apig", "title":"How Do I Switch the Environment for API Calling?", "uri":"apig-faq-2005011.html", "doc_type":"usermanual", - "p_code":"109", - "code":"118" + "p_code":"125", + "code":"134" }, { "desc":"Dedicated gateway: APIG forwards only API requests whose body is no larger than 12 MB. If your gateway will receive requests with a body larger than 12 MB, modify the req", "product_code":"apig", "title":"What Is the Maximum Size of an API Request Package?", - "uri":"apig-en-faq-180606013.html", + "uri":"apig-faq-180606013.html", "doc_type":"usermanual", - "p_code":"109", - "code":"119" + "p_code":"125", + "code":"135" }, { - "desc":"APIG provides SDKs and demos in multiple languages, such as Java, Python, C, PHP, and Go, for app authentication. To use Objective-C (for iOS) or other languages, see Dev", + "desc":"APIG provides SDKs and demos in multiple languages, such as Java, Python, C, PHP, and Go, for app authentication.To use Objective-C (for iOS) or other languages, see Deve", "product_code":"apig", "title":"How Do I Perform App Authentication in iOS System?", "uri":"apig-faq-190515025.html", "doc_type":"usermanual", - "p_code":"109", - "code":"120" + "p_code":"125", + "code":"136" }, { - "desc":"The header parameter x-auth-token has already been defined in APIG. To use this parameter to call an API, add the parameter and its value to the request header.", + "desc":"The header parameter x-auth-token has already been defined in APIG.To use this parameter to call an API, add the parameter and its value to the request header.", "product_code":"apig", "title":"Why Can't I Create a Header Parameter Named x-auth-token for an API Called Through IAM Authentication?", "uri":"apig-faq-190627029.html", "doc_type":"usermanual", - "p_code":"109", - "code":"121" + "p_code":"125", + "code":"137" }, { - "desc":"How many apps can I create?You can create a maximum of 50 apps.How do I isolate the calling information among the third parties that call the same API through app authent", + "desc":"How many apps (credentials) can I create?You can create a maximum of 50 apps (credentials).How do I isolate the calling information among the third parties that call the ", "product_code":"apig", - "title":"App FAQs", + "title":"App (Credential) FAQs", "uri":"apig-faq-190627030.html", "doc_type":"usermanual", - "p_code":"109", - "code":"122" + "p_code":"125", + "code":"138" }, { - "desc":"Yes, mobile apps can call APIs. In app authentication mode, the AppKey and AppSecret of a mobile app are replaced with those in the relevant SDK to sign the app.", + "desc":"Yes, mobile apps can call APIs.In app authentication mode, the AppKey and AppSecret of a mobile app are replaced with those in the relevant SDK to sign the app.", "product_code":"apig", "title":"Can Mobile Apps Call APIs?", - "uri":"apig-en-faq-180307004.html", + "uri":"apig-faq-180307004.html", "doc_type":"usermanual", - "p_code":"109", - "code":"123" + "p_code":"125", + "code":"139" }, { "desc":"Yes, applications deployed in a VPC can call APIs by default. If domain name resolution fails, configure a DNS server on the current endpoint by following the instruction", "product_code":"apig", "title":"Can Applications Deployed in a VPC Call APIs?", - "uri":"apig-en-faq-180307008.html", + "uri":"apig-faq-180307008.html", "doc_type":"usermanual", - "p_code":"109", - "code":"124" + "p_code":"125", + "code":"140" }, { - "desc":"APIG supports WebSocket data transmission. When creating an API, you can select HTTP, HTTPS, or HTTP&HTTPS. HTTP is equivalent to WebSocket (ws), and HTTPS is equivalent ", + "desc":"Yes.When creating an API, you can select HTTP, HTTPS, or HTTP&HTTPS. HTTP is equivalent to WebSocket (ws), and HTTPS is equivalent to WebSocket Secure (wss).", "product_code":"apig", - "title":"How Do I Implement WebSocket Data Transmission?", + "title":"Does APIG Support WebSocket Data Transmission?", "uri":"apig-faq-190627033.html", "doc_type":"usermanual", - "p_code":"109", - "code":"125" + "p_code":"125", + "code":"141" }, { - "desc":"Yes. But you should use persistent connections properly to avoid occupying too many resources.", + "desc":"Yes.But you should use persistent connections properly to avoid occupying too many resources.", "product_code":"apig", "title":"Does APIG Support Persistent Connections?", "uri":"apig-faq-19122001.html", "doc_type":"usermanual", - "p_code":"109", - "code":"126" + "p_code":"125", + "code":"142" }, { "desc":"If multiple backend policies are configured for an API, APIG will match the backend policies in sequence. If an API request matches one of the backend policies, APIG imme", @@ -1139,17 +1283,17 @@ "title":"How Will the Requests for an API with Multiple Backend Policies Be Matched and Executed?", "uri":"apig-faq-19123001.html", "doc_type":"usermanual", - "p_code":"109", - "code":"127" + "p_code":"125", + "code":"143" }, { - "desc":"No.", + "desc":"No.But there is a limit on the size of the request body. For details, see the request_body_size parameter in the API Gateway User Guide.", "product_code":"apig", "title":"Is There a Limit on the Size of the Response to an API Request?", "uri":"apig-faq-19122003.html", "doc_type":"usermanual", - "p_code":"109", - "code":"128" + "p_code":"125", + "code":"144" }, { "desc":"Enable public access for the relevant gateway to allow external services to call APIs.If you encounter a network problem when calling APIs, see What Are the Possible Caus", @@ -1157,8 +1301,8 @@ "title":"How Can I Access Backend Services over Public Networks Through APIG?", "uri":"apig-faq-0007.html", "doc_type":"usermanual", - "p_code":"109", - "code":"129" + "p_code":"125", + "code":"145" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -1166,17 +1310,17 @@ "title":"API Authentication", "uri":"apig-faq-auth.html", "doc_type":"usermanual", - "p_code":"95", - "code":"130" + "p_code":"112", + "code":"146" }, { - "desc":"Dedicated gateway: Yes.Backend two-way authentication: When creating an API, enable two-way authentication for the backend service. For details, see the description about", + "desc":"Dedicated gateway: Yes.Frontend two-way authentication: When binding an independent domain name, select an SSL certificate that contains a CA certificate. Client authenti", "product_code":"apig", "title":"Does APIG Support HTTPS Two-Way Authentication?", "uri":"apig-faq-2005013.html", "doc_type":"usermanual", - "p_code":"130", - "code":"131" + "p_code":"146", + "code":"147" }, { "desc":"To call APIs that do not require authentication, construct standard HTTP requests and send them to APIG.APIG transparently transmits requests to call an API that does not", @@ -1184,26 +1328,26 @@ "title":"How Do I Call an API That Does Not Require Authentication?", "uri":"apig-faq-2005020.html", "doc_type":"usermanual", - "p_code":"130", - "code":"132" + "p_code":"146", + "code":"148" }, { - "desc":"APIG supports TLS 1.1 and TLS 1.2, but does not support TLS 1.0 or TLS 1.3.", + "desc":"APIG supports TLS 1.1 and TLS 1.2, but does not support TLS 1.0 or TLS 1.3.For details, see section \"Binding a Domain Name\" in the API Gateway User Guide.", "product_code":"apig", "title":"Which TLS Versions Does APIG Support?", "uri":"apig-faq-2005015.html", "doc_type":"usermanual", - "p_code":"130", - "code":"133" + "p_code":"146", + "code":"149" }, { - "desc":"Yes. For details, see \"Custom Authorizers\" in the User Guide.", + "desc":"Yes.For details, see section \"Custom Authorizers\" in the API Gateway User Guide.", "product_code":"apig", "title":"Does APIG Support Custom Authentication?", "uri":"apig-faq-2005016.html", "doc_type":"usermanual", - "p_code":"130", - "code":"134" + "p_code":"146", + "code":"150" }, { "desc":"Yes. The request body is another element that needs to be signed in addition to the mandatory request header parameters. For example, when an API used to upload a file us", @@ -1211,17 +1355,26 @@ "title":"Will the Request Body Be Signed for Security Authentication?", "uri":"apig-faq-2005018.html", "doc_type":"usermanual", - "p_code":"130", - "code":"135" + "p_code":"146", + "code":"151" }, { - "desc":"You may encounter the following errors related to IAM authentication information:Incorrect IAM authentication information: verify aksk signature failIncorrect IAM authent", + "desc":"You may encounter the following errors related to IAM authentication information:Incorrect IAM authentication information: AK access failed to reach the limit,forbiddenIn", "product_code":"apig", "title":"Common Errors Related to IAM Authentication Information", "uri":"apig-faq-0003.html", "doc_type":"usermanual", - "p_code":"130", - "code":"136" + "p_code":"146", + "code":"152" + }, + { + "desc":"You may encounter the following errors related to app authentication information:Incorrect app authentication information: app not found, appkey xxxIncorrect app authenti", + "product_code":"apig", + "title":"What Should I Do If the App Authentication Information Is Incorrect?", + "uri":"apig-faq-0009.html", + "doc_type":"usermanual", + "p_code":"146", + "code":"153" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -1229,8 +1382,8 @@ "title":"API Control Policies", "uri":"apig-faq-0002.html", "doc_type":"usermanual", - "p_code":"95", - "code":"137" + "p_code":"112", + "code":"154" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -1238,35 +1391,35 @@ "title":"Request Throttling", "uri":"apig-faq-2005032.html", "doc_type":"usermanual", - "p_code":"137", - "code":"138" + "p_code":"154", + "code":"155" }, { - "desc":"No, but you can limit the maximum number of API calls allowed within a specific period of time.", + "desc":"No,but you can limit the maximum number of API calls allowed within a specific period of time.", "product_code":"apig", "title":"Can I Configure the Maximum Number of Concurrent Requests?", "uri":"apig-faq-2005026.html", "doc_type":"usermanual", - "p_code":"138", - "code":"139" + "p_code":"155", + "code":"156" }, { - "desc":"Yes.", + "desc":"Yes.For details about subdomain names (debugging domain names), see section \"Binding a Domain Name\" in the API Gateway User Guide.", "product_code":"apig", - "title":"Is the Restriction of 1000 Requests to a Subdomain Name Applied to Enterprise Accounts?", + "title":"Is the Restriction of 1000 Requests per Day to a Subdomain Name (Debugging Domain Name) Applied to Enterprise Accounts?", "uri":"apig-faq-190627032.html", "doc_type":"usermanual", - "p_code":"138", - "code":"140" + "p_code":"155", + "code":"157" }, { "desc":"Dedicated gateways have bandwidth limits. When you create a dedicated gateway, you can set the bandwidth for public inbound and outbound access.", "product_code":"apig", - "title":"Does APIG Has Bandwidth Limits?", + "title":"Does APIG Have Bandwidth Limits?", "uri":"apig-faq-19122002.html", "doc_type":"usermanual", - "p_code":"138", - "code":"141" + "p_code":"155", + "code":"158" }, { "desc":"API call limit or source IP address request limit of the policy does not take effect.Check whether the policy has been bound to an API.Check whether the policy has been b", @@ -1274,8 +1427,8 @@ "title":"Why Doesn't a Request Throttling Policy Take Effect?", "uri":"apig-faq-0001.html", "doc_type":"usermanual", - "p_code":"138", - "code":"142" + "p_code":"155", + "code":"159" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -1283,8 +1436,8 @@ "title":"Access Control", "uri":"apig-faq-2005033.html", "doc_type":"usermanual", - "p_code":"137", - "code":"143" + "p_code":"154", + "code":"160" }, { "desc":"You can provide an open API to specific users in either of the following ways:Select app authentication when you create the API, and share the AppKey and AppSecret with t", @@ -1292,8 +1445,8 @@ "title":"How Do I Provide an Open API to Specific Users?", "uri":"apig-faq-2005008.html", "doc_type":"usermanual", - "p_code":"143", - "code":"144" + "p_code":"160", + "code":"161" }, { "desc":"You can choose either of the following solutions:Solution 1: Create an API that does not require authentication, and configure an access control policy to whitelist the I", @@ -1301,53 +1454,62 @@ "title":"How Do I Exclude a Specific IP Address for Identity Authentication of an API?", "uri":"apig-faq-2005023.html", "doc_type":"usermanual", - "p_code":"143", - "code":"145" + "p_code":"160", + "code":"162" + }, + { + "desc":"Not necessarily.In APIG, access control is based on the value of $remote_addr. $remote_addr indicates a client IP address and is determined by the access mode. If a clien", + "product_code":"apig", + "title":"Are Client IP Addresses Verified for Access Control?", + "uri":"apig-faq-0008.html", + "doc_type":"usermanual", + "p_code":"160", + "code":"163" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "product_code":"apig", "title":"API Publishing", - "uri":"apig-en-faq-180919016.html", + "uri":"apig-faq-180919016.html", "doc_type":"usermanual", - "p_code":"95", - "code":"146" + "p_code":"112", + "code":"164" }, { - "desc":"Yes. After you modify the parameters of a published API, you must publish the API again to synchronize the modifications to the environment.", + "desc":"Yes.After you modify the parameters of a published API, you must publish the API again to synchronize the modifications to the environment.For details, see section \"Publi", "product_code":"apig", "title":"Do I Need to Publish an API Again After Modification?", - "uri":"apig-en-faq-180307002.html", + "uri":"apig-faq-180307002.html", "doc_type":"usermanual", - "p_code":"146", - "code":"147" + "p_code":"164", + "code":"165" }, { - "desc":"To make an API published in a non-RELEASE environment accessible, add the x-stage header to the API request.Example:", + "desc":"Yes. To access an API published in a non-RELEASE environment, add the x-stage header to the API request.Example:You can also refer to examples of section \"Quickly Opening", "product_code":"apig", - "title":"Why Can't APIs Published in a Non-RELEASE Environment Be Accessed?", - "uri":"apig-en-faq-180606011.html", + "title":"Can I Access an API Published in a Non-RELEASE Environment?", + "uri":"apig-faq-180606011.html", "doc_type":"usermanual", - "p_code":"146", - "code":"148" + "p_code":"164", + "code":"166" }, { - "desc":"Yes, you can invoke different backend services by publishing an API in different environments while specifying environment variables and backend parameters.", + "desc":"Yes, you can invoke different backend services by publishing an API in different environments while specifying environment variables and backend parameters.For details ab", "product_code":"apig", "title":"Can I Invoke Different Backend Services by Publishing an API in Different Environments?", - "uri":"apig-en-faq-181016019.html", + "uri":"apig-faq-181016019.html", "doc_type":"usermanual", - "p_code":"146", - "code":"149" + "p_code":"164", + "code":"167" }, { - "desc":"APIG debugs APIs in a specific debugging environment. After debugging is completed, you need to publish your API in an environment, and use code or postman to add the X-S", + "desc":"No.APIG debugs APIs in a specific debugging environment. After debugging is completed, you need to publish your API in an environment, and use code or Postman to add the ", "product_code":"apig", - "title":"How Do I Specify an Environment for API Debugging?", + "title":"Can I Specify an Environment for API Debugging?", "uri":"apig-faq-2005027.html", "doc_type":"usermanual", - "p_code":"146", - "code":"150" + "p_code":"164", + "code":"168" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -1355,8 +1517,8 @@ "title":"API Import and Export", "uri":"apig-faq-2005035.html", "doc_type":"usermanual", - "p_code":"95", - "code":"151" + "p_code":"112", + "code":"169" }, { "desc":"Possible cause 1: The number of APIs exceeds the maximum allowed limit for a single import. For more APIs (300), import them in batches or submit a service ticket to incr", @@ -1364,8 +1526,8 @@ "title":"Why Does API Import Fail?", "uri":"apig-faq-2005024.html", "doc_type":"usermanual", - "p_code":"151", - "code":"152" + "p_code":"169", + "code":"170" }, { "desc":"The template is being developed.Currently, you can configure one or two APIs in APIG, and then export them to use as templates.", @@ -1373,35 +1535,35 @@ "title":"Does APIG Provide a Template for Importing APIs from Swagger Files?", "uri":"apig-faq-2005025.html", "doc_type":"usermanual", - "p_code":"151", - "code":"153" + "p_code":"169", + "code":"171" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "product_code":"apig", "title":"API Security", - "uri":"apig-en-faq-180919015.html", + "uri":"apig-faq-180919015.html", "doc_type":"usermanual", - "p_code":"95", - "code":"154" + "p_code":"112", + "code":"172" }, { "desc":"Identity authenticationConfigure IAM or App authentication for APIs to prevent malicious calling.Configure IAM or App authentication for APIs to prevent malicious calling", "product_code":"apig", "title":"How Can I Protect My APIs?", - "uri":"apig-en-faq-180307003.html", + "uri":"apig-faq-180307003.html", "doc_type":"usermanual", - "p_code":"154", - "code":"155" + "p_code":"172", + "code":"173" }, { "desc":"You can ensure the security of backend services invoked by APIG by using the following methods:Bind signature keys to APIsAfter a signature key is bound to an API, APIG a", "product_code":"apig", "title":"How Do I Ensure the Security of Backend Services Invoked by APIG?", - "uri":"apig-en-faq-180307009.html", + "uri":"apig-faq-180307009.html", "doc_type":"usermanual", - "p_code":"154", - "code":"156" + "p_code":"172", + "code":"174" }, { "desc":"No.", @@ -1409,79 +1571,70 @@ "title":"Can I Control Access to the Private IP Addresses of the ECSs in a VPC Channel (or Load Balance Channel)?", "uri":"apig-faq-191201.html", "doc_type":"usermanual", - "p_code":"154", - "code":"157" + "p_code":"172", + "code":"175" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "product_code":"apig", "title":"Other FAQs", - "uri":"apig-en-faq-180919014.html", + "uri":"apig-faq-180919014.html", "doc_type":"usermanual", - "p_code":"95", - "code":"158" + "p_code":"112", + "code":"176" }, { - "desc":"An API can be published in different environments, such as RELEASE (online environment) and BETA (test environment).An app refers to the identity of an API caller. After ", + "desc":"An API can be published in different environments, such as RELEASE (online environment) and BETA (test environment).An app (credential) refers to the identity of an API c", "product_code":"apig", - "title":"What Are the Relationships Between an API, Environment, and App?", - "uri":"en-us_topic_0084464485.html", + "title":"What Are the Relationships Between an API, Environment, and App (Credential)?", + "uri":"apig_0084464485.html", "doc_type":"usermanual", - "p_code":"158", - "code":"159" + "p_code":"176", + "code":"177" }, { "desc":"You can use APIG to manage and call APIs in the following ways:Management console, a web-based service management platformIf you have already registered an account, log i", "product_code":"apig", "title":"How Can I Use APIG?", - "uri":"en-us_topic_0084464486.html", + "uri":"apig_0084464486.html", "doc_type":"usermanual", - "p_code":"158", - "code":"160" + "p_code":"176", + "code":"178" }, { - "desc":"APIG supports Java, Go, Python, C#, JavaScript, PHP, C++, C, and Android SDKs.", + "desc":"APIG supports Java, Go, Python, C#, JavaScript, PHP, C++, C, and Android SDKs.For details about SDKs, see the API Gateway Developer Guide.", "product_code":"apig", "title":"What SDK Languages Does APIG Support?", - "uri":"apig-en-faq-180606010.html", + "uri":"apig-faq-180606010.html", "doc_type":"usermanual", - "p_code":"158", - "code":"161" + "p_code":"176", + "code":"179" }, { "desc":"Yes.If you are using dedicated gateways, configure the maximum request body size allowed by setting the request_body_size parameter. The value ranges from 1 MB to 9536 MB", "product_code":"apig", "title":"Can I Upload Files Using the POST Method?", - "uri":"apig-en-faq-180307006.html", + "uri":"apig-faq-180307006.html", "doc_type":"usermanual", - "p_code":"158", - "code":"162" + "p_code":"176", + "code":"180" }, { "desc":"When receiving an API request, APIG returns a response. A similar response body is as follows:\"error_code\": error code\"error_msg\": description of the error", "product_code":"apig", "title":"What Are the Error Messages Returned by APIG Like?", - "uri":"apig-en-faq-180307001.html", + "uri":"apig-faq-180307001.html", "doc_type":"usermanual", - "p_code":"158", - "code":"163" - }, - { - "desc":"No. APIG cannot be deployed in a local data center.", - "product_code":"apig", - "title":"Can APIG Be Deployed in a Local Data Center?", - "uri":"apig-faq-20210414.html", - "doc_type":"usermanual", - "p_code":"158", - "code":"164" + "p_code":"176", + "code":"181" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "product_code":"apig", "title":"Change History", - "uri":"apig-en-ug-180307075.html", + "uri":"apig_03_0081.html", "doc_type":"usermanual", "p_code":"", - "code":"165" + "code":"182" } ] \ No newline at end of file diff --git a/docs/apig/umn/apic-ug-190430104.html b/docs/apig/umn/apic-ug-190430104.html deleted file mode 100644 index e146eaae..00000000 --- a/docs/apig/umn/apic-ug-190430104.html +++ /dev/null @@ -1,21 +0,0 @@ - - - -
This feature is currently unavailable because FunctionGraph has not been launched.
-APIG supports custom authentication of both frontend and backend requests.
-Custom authentication is implemented using FunctionGraph and not supported if FunctionGraph is unavailable in the selected region.
-For details about custom authentication, see Developer Guide.
-The following figure shows the process of calling APIs through custom authentication.
-Parameter - |
-Description - |
-
---|---|
Name - |
-Authorizer name. - |
-
Type - |
-
|
-
Function URN - |
-Select a FunctionGraph function. - |
-
Identity Sources - |
-Request parameters for authentication. You can add headers and query strings. Header names are case-insensitive. -This parameter is mandatory only if you set Type to Frontend, and Max. Cache Age (s) is greater than 0. When the cache is used, this parameter is used as a search criterion to query authentication results. - |
-
Max. Cache Age (s) - |
-The time for caching authentication results. -Value 0 means that authentication results will not be cached. The maximum value is 3600. - |
-
Send Request Body - |
-Determine whether to send the body of each API request to the authentication function. If you enable this option, the request body will be sent to the authentication function in the same way as the headers and query strings. - NOTE:
-This option is available only for dedicated API gateways. - |
-
User Data - |
-Customized request parameters to be used together with Identity Sources when APIG invokes a function. - |
-
You can delete custom authorizers you no longer require.
-You have created a custom authorizer.
-Custom policies can be created to supplement the system-defined policies of APIG. For the actions that can be added to custom policies, see section "Permissions Policies and Supported Actions" in the API Gateway API Reference.
-You can create custom policies using one of the following methods:
-For details, see section "Creating a Custom Policy" in the Identity and Access Management User Guide. The following section contains examples of common APIG custom policies.
-Only dedicated API gateways support system-defined policies and custom policies.
-{ - "Version": "1.1", - "Statement": [ - { - "Effect": "Allow", - "Action": [ - " - apig:apis:create - apig:apis:debug - " - ] - } - ] -}-
A policy with only "Deny" permissions must be used in conjunction with other policies to take effect. If the permissions assigned to a user contain both "Allow" and "Deny", the "Deny" permissions take precedence over the "Allow" permissions.
-The following method can be used if you need to assign permissions of the APIG FullAccess policy to a user but you want to prevent the user from creating API groups. Create a custom policy for denying API group creation, and attach both policies to the group to which the user belongs. Then, the user can perform all operations on API gateways except creating API groups. The following is an example of a deny policy:
-{ - "Version": "1.1", - "Statement": [ - { - "Effect": "Deny", - "Action": [ - "apig:groups:create" - ] - } - ] -}-
When receiving an API request, APIG returns a response. A similar response body is as follows:
-{ - "error_code": "APIG.0101", - "error_msg": "API does not exist or is not published in the environment.", - "request_id": "acbc548ac6f2a0dbdb9e3518a7c0ff84" -}-
Yes. After you modify the parameters of a published API, you must publish the API again to synchronize the modifications to the environment.
-Configure IAM or App authentication for APIs to prevent malicious calling.
-Configure a whitelist or blacklist of IP addresses/IP address ranges or accounts for APIs to secure access.
-By default, an API can be called up to 200 times per second. If your backend service does not support this access rate, decrease the quota accordingly.
-Yes, mobile apps can call APIs. In app authentication mode, the AppKey and AppSecret of a mobile app are replaced with those in the relevant SDK to sign the app.
-Yes.
-If you are using dedicated gateways, configure the maximum request body size allowed by setting the request_body_size parameter. The value ranges from 1 MB to 9536 MB.
-Currently, only the request body can be transparently transmitted.
-Yes, applications deployed in a VPC can call APIs by default. If domain name resolution fails, configure a DNS server on the current endpoint by following the instructions in Configuring an Intranet DNS Server. After the configuration, applications deployed in the VPC can call APIs.
-To configure a DNS server, specify its IP address in the /etc/resolv.conf file.
-The IP address of the intranet DNS server depends on which region you are located in. Find the IP address of the intranet DNS server in your region from the private DNS server addresses mentioned in the Domain Name Service FAQs.
-Add an intranet DNS server with either of the following two methods:
-The intranet DNS server configurations become invalid after the ECS restarts, and the intranet DNS server must be configured again. Therefore, method 1 is recommended.
-Perform the following procedure to add a DNS server IP address to the subnet configurations of the ECS in the VPC.
-For example, change the address to 100.125.1.250.
-The following figure shows the IP address 100.125.1.250 of the DNS server to be configured.
-Modifying the subnet information of a VPC will affect all ECSs created using the subnet.
-Add the IP address of the intranet DNS server to the /etc/resolv.conf file.
-For example, if you are located in region01, add an intranet DNS server of IP address 100.125.1.250 to the /etc/resolv.conf file.
-You can ensure the security of backend services invoked by APIG by using the following methods:
-After a signature key is bound to an API, APIG adds signature information to each request sent to the backend service. The backend service calculates the signature information in each request and checks whether the signature information is consistent with that on APIG.
-Enable security authentication for backend services of the desired APIs to process only API requests that carry correct authentication information.
-APIG supports Java, Go, Python, C#, JavaScript, PHP, C++, C, and Android SDKs.
-To make an API published in a non-RELEASE environment accessible, add the x-stage header to the API request.
-Example:
-r.Header.Add("x-stage", "RELEASE")-
Yes. APIG supports the configuration of multiple backend endpoints through a VPC channel (also called "load balance channel"). You can add multiple cloud servers to each VPC channel.
-Dedicated gateway: APIG forwards only API requests whose body is no larger than 12 MB. If your gateway will receive requests with a body larger than 12 MB, modify the request_body_size parameter on the gateway details page. This parameter indicates the maximum request body size allowed. The value ranges from 1 MB to 9536 MB.
-Yes, you can invoke different backend services by publishing an API in different environments while specifying environment variables and backend parameters.
-The following figure shows the process of exposing an API.
-Buy a dedicated gateway. For details, see Buying a Dedicated Gateway.
- -An API group facilitates management of APIs used for the same service. Create an API group and then create APIs.
-Before making the API available for users to access, bind an independent domain name (custom domain name) to the group to which the API belongs. Then API callers can use these domain names to call the API.
-When creating an API, configure the frontend and backend request paths, parameters, and protocols.
-Debug the API to check whether it works normally.
-An API can be called in different scenarios, such as the production environment (RELEASE) or other custom environments. RELEASE is the default environment defined in APIG.
-Publish the API so that it can be called.
-Parameter - |
-Description - |
-
---|---|
Name - |
-API group name. It is recommended that you enter a name based on naming rules to facilitate search. - |
-
Description - |
-Description of the API group. - |
-
Parameter - |
-Description - |
-
---|---|
Name - |
-Environment name. It is recommended that you enter a name based on naming rules to facilitate search. - |
-
Description - |
-Description of the environment. - |
-
The following figure shows the process of calling an API.
-APIs that use app authentication can only be called using apps bound to them.
-APIG only verifies the AppCode during simple authentication.
-Use an API test tool to call the API with app authentication credentials.
--
Parameter - |
-Description - |
-
---|---|
Name - |
-App name. It is recommended that you enter a name based on naming rules to facilitate search. - |
-
Description - |
-Description of the app. - |
-
Use an API test tool to configure the API calling information.
-For illustration purposes, an API and its documentation are obtained through offline channels. You can also obtain the authentication mode, request method, request path, and other information about the API.
-If the API is called successfully, the message 200 OK is displayed.
-Before creating an API, you must create an API group. An API group contains different APIs used for the same service.
-Each API can only belong to one API group.
--
-After the API group is created, bind independent domain names to it so that API callers can use the domain names to call APIs in the group. For more information, see Binding a Domain Name.
-You can delete an API group if you do not require it.
-API groups that contain APIs cannot be deleted.
-You have created an API group.
-You can selectively expose your services by configuring their APIs in APIG.
-To create an API, set the basic information and define the API request, backend service, and responses.
-APIG uses a REST-based API architecture, so API opening and calling must comply with related RESTful API specifications.
-Parameter - |
-Description - |
-
---|---|
Name - |
-API name. It is recommended that you enter a name based on naming rules to facilitate search. - |
-
API Group - |
-The group to which the API belongs. -If no API group is available, click Create API Group to create one. - |
-
Gateway Response - |
-Displayed if APIG fails to process an API request. -APIG provides a set of default responses and also allows you to create gateway responses with custom status codes and content, on the API Groups page. The response content must be in JSON format. - |
-
Visibility - |
-Determine whether the API is available to the public. Options: -
|
-
Security Authentication - |
-The following authentication modes are available: -
The API calling method varies depending on the authentication mode. For details, see Developer Guide. -App authentication is recommended. - NOTICE:
-
|
-
Simple Authentication - |
-This parameter is available only if you set Security Authentication to App. -If you select app authentication, you can configure whether to enable simple authentication. In simple authentication, the X-Apig-AppCode parameter is added to the HTTP request header for quick response. APIG verifies only the AppCode and the request content does not need to be signed. -Simple authentication only supports HTTPS requests and does not support HTTP requests. For details, see Adding an AppCode for Simple Authentication. - NOTE:
-After you enable simple authentication for an existing API, you need to publish the API again. For details, see Publishing an API. - |
-
Custom Authorizer - |
-This parameter is mandatory if Security Authentication is set to Custom. -Select a custom authorizer if you set Security Authentication to Custom. If no custom authorizer is available, click Create Custom Authorizer to create one. - |
-
Tag Name - |
-Classification attribute used to quickly identify the API from other APIs. - |
-
Description - |
-Description of the API. - |
-
Parameter - |
-Description - |
-
---|---|
Domain Name - |
-The subdomain automatically allocated to the API group. - |
-
Protocol - |
-The protocol used for calling the API. Options: -
HTTPS is recommended for transmitting important or sensitive data. - |
-
Path - |
-The path for requesting the API. -Enter a path in the format of "/users/{userId}/projects". -
|
-
Matching - |
-Options: -
NOTE:
-
|
-
Method - |
-The API calling method. The options are GET, POST, DELETE, PUT, PATCH, HEAD, OPTIONS, and ANY. -
|
-
CORS - |
-Determine whether to enable cross-origin resource sharing (CORS). -CORS allows browsers to send XMLHttpRequest to servers in other domains, overcoming the limitation that Asynchronous JavaScript and XML (AJAX) can be used only within the same domain. -There are two types of CORS requests: -
If you enable CORS, you need to create another API that uses the OPTIONS method. For details, see CORS. - |
-
Parameter - |
-Description - |
-
---|---|
Name - |
-Name of the input parameter. If you set the parameter location to PATH, ensure that the parameter name is the same as that defined in the request path. - NOTE:
-
|
-
Location - |
-Position of the parameter in requests. The options are PATH, HEADER, and QUERY. - NOTE:
-If you set the parameter location to PATH, you must include the parameter in the request path. - |
-
Type - |
-Type of the parameter value. Options: STRING and NUMBER. - NOTE:
-Set the type of Boolean parameters to STRING. - |
-
Mandatory - |
-Determine whether the input parameter is required in each request sent to call the API. If you select Yes, API requests that do not contain the input parameter will be rejected. - |
-
Passthrough - |
-Determine whether to transparently transmit the input parameter to the backend service. - |
-
Default Value - |
-The value that will be used if no value is specified for the input parameter when the API is called. If the input parameter is not specified in a request, APIG will automatically send the default value to the backend service. - |
-
Enumerated Value - |
-Enumerated value of the input parameter. Use commas (,) to separate multiple enumerated values. The value of this input parameter can only be one of the enumerated values. - |
-
Minimum Length - |
-The minimum length of the parameter value. Only numbers are allowed. - |
-
Maximum Length - |
-The maximum length of the parameter value. Only numbers are allowed. - |
-
Example - |
-Example value for the parameter. - |
-
Description - |
-Description of the parameter. - |
-
APIG allows you to define multiple backend policies for different scenarios. Requests that meet specified conditions will be forwarded to the corresponding backend. For example, you can have certain requests to an API forwarded to a specific backend by specifying the source IP address in the policy conditions of the backend.
-You can define a maximum of five backend policies for an API in addition to the default backend.
-API requests that do not meet the conditions of any backend will be forwarded to the default backend.
-On the Define Backend Request page, select a backend type.
-Table 4 and Table 5 describe the backend service parameters.
- -Parameter - |
-Description - |
-
---|---|
Protocol - |
-HTTP or HTTPS. This protocol must be the one used by the backend service. - NOTE:
-
|
-
Method - |
-The API calling method. The options are GET, POST, DELETE, PUT, PATCH, HEAD, OPTIONS, and ANY. -ANY indicates that the API can be called using any request method. - |
-
VPC Channel - |
-Determine whether the backend service will be accessed using a VPC channel. -
|
-
Host Header (if applicable) - |
-This parameter is available only if you set VPC Channel to Configure. -Define a host header for requests to be sent to cloud servers associated with the VPC channel. By default, the original host header in each request will be used. - |
-
Path - |
-The request path (URI) of the backend service. Ensure that any parameters in the path are enclosed in braces ({}). For example, /getUserInfo/{userId}. -If the path contains an environment variable, enclose the environment variable in number signs (#), for example, /#path#. You can use multiple environment variables, for example, /#path##request#. - |
-
Timeout (ms) - |
-Backend request timeout. -If a backend timeout error occurs during API debugging, increase the timeout to locate the reason. - NOTE:
-For dedicated gateways, you can modify the maximum timeout by referring to Configuration Parameters. The value range is 1 ms to 600,000 ms. - |
-
Two-way Authentication - |
-Determine whether to allow APIG to authenticate the API backend service through HTTPS. For details about how to configure the certificate for two-way authentication, see Configuration Parameters. - |
-
Backend Authentication - |
-Determine whether your backend service needs to authenticate API requests. -If you enable this option, select a custom authorizer for backend authentication. Custom authorizers are functions that are created in FunctionGraph to implement an authentication logic or to invoke an authentication service. - NOTE:
-Backend authentication relies on FunctionGraph and is only available in certain regions. - |
-
Parameter - |
-Description - |
-
---|---|
Status Code - |
-This parameter is available only after you upgrade the Shubao component. - |
-
Response - |
-You can use Mock for API development, debugging, and verification. It enables APIG to return a response without sending the request to the backend. This is useful if you need to test APIs when the backend is unavailable. - |
-
Backend Authentication - |
-For details, see the description about backend authentication in Table 4. - |
-
Header Parameters - |
-API response headers. -Click Add Header, and enter the parameter name, value, and description. - |
-
You can add backend policies to forward requests to different backend services.
-Parameter - |
-Description - |
-
---|---|
Name - |
-The backend policy name. - |
-
Effective Mode - |
-
|
-
Policy Conditions - |
-Conditions that must be met for the backend policy to take effect. Set conditions by referring to Table 7. - |
-
Parameter - |
-Description - |
-
---|---|
Source - |
-
NOTICE:
-Input parameters (for example, headers) set as policy conditions must have already been defined in the API request settings. - |
-
Parameter Name - |
-
|
-
Parameter Location - |
-The parameter location is displayed only if you set Source to Input parameter. - |
-
Condition Type - |
-This parameter is required only if you set Source to Input parameter. -
|
-
Condition Value - |
-Set a condition value according to the condition type.
-
If you have set Source to Source IP address, enter one or more IP addresses and separate them using commas. - |
-
Input parameters of the API are mapped to corresponding backend parameters in backend requests.
-For example, test01 is abc, test02 is def, and test03 is xyz.
-API request:
-curl -ik -H 'test02:def' -X GET https://www.example01.com/v1.0/abc?test03=xyz-
Backend request:
-curl -ik -H 'test01:abc' -H 'test03:xyz' -X GET https://www.example02.com/v1.0/def-
You can define constant parameters for the backend service to receive constants that are invisible to API callers. APIG adds constant parameters to specified positions in the request sent to the backend service.
-Constant parameters will be stored as plaintext. To prevent information leakage, do not contain sensitive information in these parameters.
-Parameter - |
-Description - |
-
---|---|
Name - |
-Constant parameter name. If you set the parameter location to PATH, ensure that the parameter name is the same as that defined in the backend request path. - NOTE:
-
|
-
Location - |
-Position of the parameter in requests. -The options are PATH, QUERY, and HEADER. - |
-
Value - |
-Value of the parameter. - |
-
Description - |
-Description of the constant parameter. - |
-
-
-After the API is created, click its name in the API list to view details.
-After creating an API, verify it by following the procedure in Debugging an API.
-APIs using app authentication can only be called by apps that have been authorized to call them.
-To authorize an app to access multiple APIs, select the APIs, and click Authorize App. Click Select App, select the app you wish to authorize, and click OK. You can grant access to a maximum of 1000 APIs at a time.
-If an app does not need to call the API, click Cancel Authorization in the row containing the app to unbind it.
-After you authorize an app to call an API, the API can be called using SDKs of different programming languages.
-APIs can be called only after they have been published in an environment. You can publish APIs in different environments. APIG allows you to view the publication history (such as the version, description, time, and environment) of each API, and supports rollback of APIs to different historical versions.
-To publish multiple APIs, select the APIs, and click Publish. You can publish a maximum of 1000 APIs at a time.
-The publication history of the API is displayed.
-The View Details dialog box displays the basic information, frontend and backend request information, input and constant parameters, parameter mappings, and example responses of the API.
-If "current version" is displayed next to the target version, the rollback was successful.
-When the API is called, configuration of the current version is used instead of the previously saved configuration.
-For example, an API was published in the RELEASE environment on August 1, 2018. On August 20, 2018, the API was published in the same environment after modification. If the version published on August 1 is set as the current version, configuration of this version will be used when the API is called.
-You can remove APIs that you do not need from the environments where the APIs have been published.
-This operation will cause the APIs to be inaccessible in the environments. Ensure that you have notified users before this operation.
-To take multiple APIs offline, select the APIs, and click Take Offline. You can take a maximum of 1000 APIs offline at a time.
-After taking an API offline, delete it based on the instructions provided in Deleting an API.
-After creating an API, debug it on the APIG console by setting HTTP headers and body parameters to verify whether the API is running normally.
-On the left side, set the API request parameters listed in Table 1. On the right side, view the API request and response information after you click Send Request.
- -Parameter - |
-Description - |
-
---|---|
Protocol - |
-This parameter can be modified only if you set Protocol to HTTP&HTTPS for the API. - |
-
Method - |
-This parameter can be modified only if you set Method to ANY for the API. - |
-
Suffix - |
-You can define a path only if you have set Matching to Prefix match for the API. - |
-
Path - |
-Request path of the API. - |
-
Path Parameters - |
-This parameter can be modified only if you have defined path parameters (such as {test}) for the API. - |
-
Query Strings - |
-Query string parameters and values. - |
-
Headers - |
-HTTP headers and values. - |
-
Body - |
-This parameter can be modified only if you set Method to PATCH, POST, or PUT for the API. - |
-
The fields displayed on the debugging page vary according to the request type.
-The box on the lower right displays the response of the API request.
-To modify the API configurations, click Edit in the upper right corner, and modify the parameters on the Edit API page.
-After the API is successfully debugged, publish the API in a specific environment so that the API can be called by users. To ensure security of the API, create request throttling policies (see Creating a Request Throttling Policy), access control policies (Creating an Access Control Policy), and signature keys (Creating and Using a Signature Key) for the API.
-You can delete published APIs you no longer require.
-To delete multiple APIs, select the APIs, and click Delete. You can delete a maximum of 1000 APIs at a time.
-Request throttling controls the number of times an API can be called within a time period to protect backend services.
-To provide stable, uninterrupted services, you can create request throttling policies to control the number of calls made to your APIs.
-Request throttling policies take effect for an API only if they have been bound to the API.
-You have published the API to which you want to bind a request throttling policy.
-Parameter - |
-Description - |
-
---|---|
Name - |
-Request throttling policy name. - |
-
Type - |
-API-based or API-shared request throttling. -
|
-
Period - |
-For how long you want to limit the number of API calls. This parameter can be used together with the following parameters: -
|
-
Max. API Requests - |
-The maximum number of times each bound API can be called within the specified period. -This parameter must be used together with Period. - |
-
Max. User Requests - |
-The maximum number of times each bound API can be called by a user within the specified period. This limit only applies to APIs that are accessed through app or IAM authentication. -
|
-
Max. App Requests - |
-The maximum number of times each bound API can be called by an app within the specified period. This limit only applies to APIs that are accessed through app authentication. -
|
-
Max. IP Address Requests - |
-The maximum number of times each bound API can be called by an IP address within the specified period. -
|
-
Description - |
-Description of the request throttling policy. - |
-
After the policy is created, it is displayed on the Request Throttling page. You can bind this policy to APIs to throttle API requests.
-If a request throttling policy is no longer needed for an API, you can unbind it. To unbind a request throttling policy from multiple APIs, select the APIs, and click Unbind. You can unbind a request throttling policy from a maximum of 1000 APIs at a time.
-To control the maximum number of API calls received from a specific app or tenant, specify the app or tenant to exclude by referring to Adding an Excluded App or Tenant. If an app is excluded in a request throttling policy, any threshold configured for that app takes precedence over the request throttling policy. The API and user request limits of this policy are still valid. If a tenant is excluded in a request throttling policy, any threshold configured for that tenant will be applied. The API and app request limits of this policy are still valid.
-You can delete request throttling policies you no longer require.
-You have created a request throttling policy.
-If you want to control the number of API calls received from a specific app or tenant, add an excluded app or tenant to a request throttling policy.
-You have created an app or obtained an app ID of another account or an account ID.
-Excluded app thresholds take precedence over the value of Max. App Requests.
-For example, a request throttling policy has been configured, with Max. API Requests being 10, Max. App Requests being 3, Period being 1 minute, and two excluded apps (max. 2 API requests for app A and max. 4 API requests for app B). If the request throttling policy is bound to an API, apps A and B can access the API 2 and 4 times within 1 minute, respectively.
--
Parameter - |
-Description - |
-
---|---|
Account ID - |
-Account ID or project ID obtained in 3. -
|
-
Threshold - |
-The maximum number of times an API can be called by the tenant within a specified period. -The value of this parameter cannot exceed that of Max. API Requests. - |
-
Excluded tenant thresholds take precedence over the value of Max. User Requests.
-For example, suppose a request throttling policy is configured, with Max. API Requests being 10, Max. User Requests being 3, Period being 1 minute, and two excluded tenants (max. 2 API requests for tenant A and max. 4 API requests for tenant B). If the request throttling policy is bound to an API, tenants A and B can access the API 2 and 4 times within 1 minute, respectively.
-You can remove excluded apps or tenants from a request throttling policy. This section takes an excluded app as an example.
-An API can be called in different environments, such as production, testing, and development environments. RELEASE is the default environment provided by APIG. You can define environment variables to allow an API to be called in different environments.
-Environment variables are manageable and specific to environments. You can create variables in different environments to call different backend services using the same API.
-For variables you define during API creation, you must create corresponding variables and values. For example, variable Path is defined for an API, and two variables with the same name are created and assigned values /Stage/test and /Stage/AA in environments 1 and 2, respectively. If the API is published and called in environment 1, the path /Stage/test is used. If the API is published and called in environment 2, the path /Stage/AA is used.
-You can create a maximum of 50 variables for an API group in each environment.
-You have created an API group.
--
-After the environment is created, it is displayed in the environment list.
-You can call an API in the RELEASE environment by using a RESTful API. To access the API in other environments, add the X-Stage header to the request to specify an environment name. For example, add X-Stage:DEVELOP to the request header to access an API in the DEVELOP environment.
-APIG does not support API debugging using environment variables.
--
-If a variable is not needed, click Delete in the row containing the variable to delete it.
-Environment variable names and values will be displayed in plain text in API requests. Do not include sensitive information in the variable names and values.
-After creating an environment and variable, publish APIs in the environment so that they can be called by API callers.
-You can delete environments you no longer require.
-You have created an environment.
-You can delete an environment only if no APIs have been published in the environment.
-Signature keys are used by backend services to verify the identity of APIG.
-A signature key consists of a key and secret, and can be used only after being bound to an API. When an API bound with a signature key is called, APIG adds signature details to the API request. The backend service of the API signs the request in the same way, and verifies the identity of APIG by checking whether the signature is consistent with that in the Authorization header sent by APIG.
-Each API can only be bound with one signature key in a given environment, but each signature key can be bound to multiple APIs.
-Parameter - |
-Description - |
-
---|---|
Name - |
-Signature key name. - |
-
Type - |
-Type of the signature key. Select HMAC or Basic. This parameter is available only for dedicated gateways. - |
-
Key - |
-Combined with Secret to form a signature key pair. -
|
-
Secret - |
-Combined with Key to form a signature key pair. -
|
-
Confirm Secret - |
-Enter the secret again. - |
-
If a signature key is no longer needed for an API, unbind it from the API.
-Sign each backend request by following the instructions in section "Creating Signatures for Backend Requests" of the API Gateway Developer Guide, and check whether the backend signature is consistent with the signature in the Authorization header of the API request.
-You can delete signature keys you no longer require.
-You have created a signature key.
-If the signature key has been bound to any APIs, unbind it and then delete it.
--
Parameter - |
-Description - |
-
---|---|
Name - |
-App name. - |
-
Description - |
-Description of the app. - |
-
You can customize AppKeys and AppSecrets on dedicated gateways. An AppKey is an identifier and must be globally unique. It is automatically generated. You are not advised to customize one unless it is necessary.
-After the app is created, its name and ID are displayed in the app list.
-You can call APIs using different authentication methods. For details, see Calling APIs.
-You can delete apps you no longer require.
-You have created an app.
-If the app has been bound to any APIs, you must unbind the app and then delete it.
-You can reset the AppSecret of an app. The AppKey is unique and cannot be reset. When you reset the AppSecret, it becomes invalid and APIs bound to the app cannot be called. To enable API calls for that app again, you will need to update the AppSecret of the app you use.
-You have created an app.
-You can view the details of an API to which an app has been bound.
-If you want to collect, record, or query operation logs for APIG in common scenarios such as security analysis, audit, and problem locating, enable Cloud Trace Service (CTS). For details, see section "Enabling CTS" in the Cloud Trace Service User Guide.
-CTS provides the following functions:
-With CTS, you can record operations associated with APIG for future query, audit, and backtracking.
- -Operation - |
-Resource Type - |
-Trace Name - |
-
---|---|---|
Creating an API group - |
-ApiGroup - |
-createApiGroup - |
-
Deleting an API group - |
-ApiGroup - |
-deleteApiGroup - |
-
Updating an API group - |
-ApiGroup - |
-updateApiGroup - |
-
Binding a domain name - |
-ApiGroup - |
-createDomainBinding - |
-
Change minimum TLS version - |
-ApiGroup - |
-modifySecureTransmission - |
-
Unbinding a domain name - |
-ApiGroup - |
-relieveDomainBinding - |
-
Adding a domain certificate - |
-ApiGroup - |
-addDomainCertificate - |
-
Deleting a domain certificate - |
-ApiGroup - |
-deleteDomainCertificate - |
-
Creating an API - |
-Api - |
-createApi - |
-
Deleting an API - |
-Api - |
-deleteApi - |
-
Deleting multiple APIs - |
-Api - |
-batchDeleteApi - |
-
Updating an API - |
-Api - |
-updateApi - |
-
Publishing an API - |
-Api - |
-publishApi - |
-
Taking an API offline - |
-Api - |
-offlineApi - |
-
Publishing multiple APIs or taking APIs offline - |
-Api - |
-batchPublishOrOfflineApi - |
-
Switching API versions - |
-Api - |
-switchApiVersion - |
-
Taking an API version offline - |
-Api - |
-offlineApiByVersion - |
-
Debugging an API - |
-Api - |
-debugApi - |
-
Creating an environment - |
-Environment - |
-createEnvironment - |
-
Deleting an environment - |
-Environment - |
-deleteEnvironment - |
-
Updating an environment - |
-Environment - |
-updateEnvironment - |
-
Creating an environment variable - |
-EnvVariable - |
-createEnvVariable - |
-
Updating an environment variable - |
-EnvVariable - |
-updateEnvVariable - |
-
Deleting an environment variable - |
-EnvVariable - |
-deleteEnvVariable - |
-
Creating an app - |
-App - |
-createApp - |
-
Deleting an app - |
-App - |
-deleteApp - |
-
Updating an application - |
-App - |
-updateApp - |
-
Resetting AppSecret - |
-App - |
-resetAppSecret - |
-
Binding a client to an API - |
-AppAuth - |
-grantAuth - |
-
Unbinding a client from an API - |
-AppAuth - |
-relieveAuth - |
-
Creating a signature key - |
-Signature - |
-createSignature - |
-
Deleting a signature key - |
-Signature - |
-deleteSignature - |
-
Updating a signature key - |
-Signature - |
-updateSignature - |
-
Binding a signature key - |
-SignatureBinding - |
-createSignatureBinding - |
-
Unbinding a signature key - |
-SignatureBinding - |
-relieveSignatureBinding - |
-
Creating an access control policy - |
-Acl - |
-createAcl - |
-
Deleting an access control policy - |
-Acl - |
-deleteAcl - |
-
Deleting access control policies - |
-Acl - |
-batchDeleteAcl - |
-
Updating an access control policy - |
-Acl - |
-updateAcl - |
-
Creating an access control blacklist - |
-Acl - |
-addAclValue - |
-
Deleting an access control blacklist - |
-Acl - |
-deleteAclValue - |
-
Binding an access control policy to an API - |
-AclBinding - |
-createAclBinding - |
-
Unbinding an access control policy from an API - |
-AclBinding - |
-relieveAclBinding - |
-
Unbinding multiple access control policies from APIs - |
-AclBinding - |
-batchRelieveAclBinding - |
-
Creating a request throttling policy - |
-Throttle - |
-createThrottle - |
-
Deleting a request throttling policy - |
-Throttle - |
-deleteThrottle - |
-
Deleting multiple request throttling policies - |
-Throttle - |
-batchDeleteThrottle - |
-
Updating a requesting throttling policy - |
-Throttle - |
-updateThrottle - |
-
Binding a request throttling policy - |
-ThrottleBinding - |
-createThrottleBinding - |
-
Unbinding a request throttling policy - |
-ThrottleBinding - |
-relieveThrottleBinding - |
-
Unbinding multiple request throttling policies - |
-ThrottleBinding - |
-batchRelieveThrottleBinding - |
-
Creating an excluded request throttling configuration - |
-ThrottleSpecial - |
-createSpecialThrottle - |
-
Deleting an excluded request throttling configuration - |
-ThrottleSpecial - |
-deleteSpecialThrottle - |
-
Updating an excluded request throttling configuration - |
-ThrottleSpecial - |
-updateSpecialThrottle - |
-
Creating a load balance channel - |
-Vpc - |
-createVpc - |
-
Deleting a load balance channel - |
-Vpc - |
-deleteVpc - |
-
Updating a load balance channel - |
-Vpc - |
-updateVpc - |
-
Adding members to a load balance channel - |
-Vpc - |
-addVpcMember - |
-
Deleting members from a load balance channel - |
-Vpc - |
-deleteVpcMember - |
-
Exporting an API - |
-Swagger - |
-swaggerExportApi - |
-
Exporting multiple APIs - |
-Swagger - |
-swaggerExportApiList - |
-
Exporting all APIs in a group - |
-Swagger - |
-swaggerExportApiByGroup - |
-
Importing APIs to a new group - |
-Swagger - |
-swaggerImportApiToNewGroup - |
-
Importing APIs to an existing group - |
-Swagger - |
-swaggerImportApiToExistGroup - |
-
Exporting all custom backends - |
-Swagger - |
-SwaggerExportLdApi - |
-
Importing custom backends - |
-Swagger - |
-SwaggerImportLdApi - |
-
Creating a custom authorizer - |
-Authorizer - |
-createAuthorizer - |
-
Deleting a custom authorizer - |
-Authorizer - |
-deleteAuthorizer - |
-
Updating a custom authorizer - |
-Authorizer - |
-updateAuthorizer - |
-
Creating a plug-in - |
-Plugin - |
-createPlugin - |
-
Updating a plug-in - |
-Plugin - |
-updatePlugin - |
-
Deleting a plug-in - |
-Plugin - |
-deletePlugin - |
-
Binding a plug-in to an API - |
-Plugin - |
-pluginAttachApi - |
-
Unbinding an API from a plug-in - |
-Plugin - |
-pluginDetachApi - |
-
Binding a plug-in to an API - |
-Plugin - |
-apiAttachPlugin - |
-
Unbinding a plug-in from an API - |
-Plugin - |
-apiDetachPlugin - |
-
Disable CTS by following the procedure in section "Deleting a Tracker" in the Cloud Trace Service User Guide.
-Date - |
-Description - |
-
---|---|
2022-12-30 - |
-This issue is the first official release. - |
-
Before you open an API, you must bind one or more independent domain names to the group to which the API belongs.
-Note the following points before you bind a domain name:
-Dedicated gateway: An A record points the independent domain name to the address of the gateway. For details, see section "Adding an A Record Set" in the Domain Name Service User Guide.
-For API groups created under dedicated gateways, specify the minimum TLS version (TLS 1.1 or TLS 1.2) supported by domain names that you bind to the API groups. TLS 1.2 is recommended.
-If the domain name is not needed, click Unbind to unbind it from the API group.
-After binding independent domain names to the API group, create APIs in the group to selectively expose backend capabilities. For details, see Creating an API.
-VPC channels allow services deployed in VPCs to be accessed through their subnets, lowering latency and balancing loads of backend services.
-After creating a VPC channel, you can configure it for an API with an HTTP/HTTPS backend service. For example, six ECSs have been deployed in a VPC, and a VPC channel has been created to reach ECS 01 and ECS 04. APIG can access these two ECSs through the VPC channel.
-Dedicated gateways support VPC channels with a private network load balancer.
--
Parameter - |
-Description - |
-
---|---|
Name - |
-VPC channel name. - |
-
Port - |
-The host port of the VPC channel, that is, the port of the backend service. -Range: 1–65535. - |
-
Member Type - |
-Select a method that you want to use to specify servers for the VPC channel. The member type is a one-time configuration and cannot be changed after you create the VPC channel. -
|
-
Routing Algorithm - |
-The algorithm to be used to forward requests to cloud servers you select. -The following routing algorithms are available: -
|
-
Protocol - |
-The protocol used to perform health checks on cloud servers associated with the VPC channel. Options: -
Default value: TCP. - |
-
Path - |
-The destination path for health checks. -Set this parameter only when Protocol is not set to TCP. - |
-
Check Port - |
-The destination port for health checks. -By default, the port of the VPC channel will be used. - |
-
Healthy Threshold - |
-The number of consecutive successful checks required for a cloud server to be considered healthy. -Range: 2–10. Default value: 2. - |
-
Unhealthy Threshold - |
-The number of consecutive failed checks required for a cloud server to be considered unhealthy. -Range: 2–10. Default value: 5. - |
-
Timeout (s) - |
-The timeout used to determine whether a health check has failed. Unit: s. -Range: 2–30. Default value: 5. - |
-
Interval (s) - |
-The interval between consecutive checks. Unit: s. -Range: 5–300. Default value: 10. - |
-
Response Codes - |
-The HTTP codes used to check for a successful response from a target. -Set this parameter only when Protocol is not set to TCP. - |
-
To ensure a successful health check and service availability, configure the security groups of the cloud servers to allow access from 100.125.0.0/16.
-Create an API for backend services deployed in a VPC to balance loads.
-You can delete VPC channels you no longer require.
-VPC channels that are currently in use by published APIs cannot be deleted.
-You have created a VPC channel.
-You can modify the health check configurations of a VPC channel to meet service requirements.
-You have created a VPC channel.
-Parameter - |
-Description - |
-
---|---|
Protocol - |
-The protocol used to perform health checks on cloud servers associated with the VPC channel. Options: -
Default value: TCP. - |
-
Path - |
-The destination path for health checks. -Set this parameter only when Protocol is not set to TCP. - |
-
Check Port - |
-The destination port for health checks. -By default, the port of the VPC channel will be used. - |
-
Healthy Threshold - |
-The number of consecutive successful checks required for a cloud server to be considered healthy. -Range: 2–10. Default value: 2. - |
-
Unhealthy Threshold - |
-The number of consecutive failed checks required for a cloud server to be considered unhealthy. -Range: 2–10. Default value: 5. - |
-
Timeout (s) - |
-The timeout used to determine whether a health check has failed. Unit: s. -Range: 2–30. Default value: 5. - |
-
Interval (s) - |
-The interval between consecutive checks. Unit: s. -Range: 5–300. Default value: 10. - |
-
Response Codes - |
-The HTTP codes used to check for a successful response from a target. -Set this parameter only when Protocol is not set to TCP. - |
-
This section describes the metrics that APIG reports to the Cloud Eye service. You can view metrics and alarms by using the Cloud Eye console.
-Dedicated gateway: SYS.APIC
-ID - |
-Name - |
-Description - |
-Value Range - |
-Monitored Object - |
-Monitoring Period (Minute) - |
-
---|---|---|---|---|---|
requests - |
-Requests - |
-Number of times that all APIs in a dedicated gateway have been called. - |
-≥0 - |
-Dedicated gateway - |
-1 - |
-
error_4xx - |
-4xx Errors - |
-Number of times that all APIs in the dedicated gateway return a 4xx error. - |
-≥0 - |
-Dedicated gateway - |
-1 - |
-
error_5xx - |
-5xx Errors - |
-Number of times that all APIs in the dedicated gateway return a 5xx error. - |
-≥0 - |
-Dedicated gateway - |
-1 - |
-
throttled_calls - |
-Throttled API Calls - |
-Number of times that all APIs in the dedicated gateway have been throttled. - |
-≥0 - |
-Dedicated gateway - |
-1 - |
-
avg_latency - |
-Average Latency - |
-Average latency of all APIs in the gateway. - |
-≥0 -Unit: ms - |
-Dedicated gateway - |
-1 - |
-
max_latency - |
-Maximum Latency - |
-Maximum latency of all APIs in the gateway. - |
-≥0 -Unit: ms - |
-Dedicated gateway - |
-1 - |
-
req_count - |
-Requests - |
-Number of times that an API has been called. - |
-≥ 0 - |
-API - |
-1 - |
-
req_count_2xx - |
-2xx Responses - |
-Number of times that the API returns a 2xx response. - |
-≥ 0 - |
-API - |
-1 - |
-
req_count_4xx - |
-4xx Errors - |
-Number of times that the API returns a 4xx error. - |
-≥ 0 - |
-API - |
-1 - |
-
req_count_5xx - |
-5xx Errors - |
-Number of times that the API returns a 5xx error. - |
-≥ 0 - |
-API - |
-1 - |
-
req_count_error - |
-Total Errors - |
-Total number of errors returned by the API. - |
-≥ 0 - |
-API - |
-1 - |
-
avg_latency - |
-Average Latency - |
-Average latency of the API. - |
-≥ 0 -Unit: ms - |
-API - |
-1 - |
-
max_latency - |
-Maximum Latency - |
-Maximum latency of the API. - |
-≥ 0 -Unit: ms - |
-API - |
-1 - |
-
input_throughput - |
-Incoming Traffic - |
-Incoming traffic of the API. - |
-≥ 0 -Unit: Byte, KB, MB, or GB - |
-API - |
-1 - |
-
output_throughput - |
-Outgoing Traffic - |
-Outgoing traffic of the API. - |
-≥ 0 -Unit: Byte, KB, MB, or GB - |
-API - |
-1 - |
-
Key - |
-Value - |
-
---|---|
instance_id - |
-Dedicated gateway - |
-
api_id - |
-API - |
-
Cloud Eye monitors the status of your APIs and allows you to view their metrics.
-You have created an API group and API.
-API metrics are displayed on the Dashboard tab page.
-The monitoring data is retained for two days. To retain the data for a longer period, save it to an OBS bucket.
-You can add or remove cloud servers and edit cloud server weights for VPC channels to meet service requirements.
-You have created a VPC channel.
-To ensure a successful health check and service availability, configure the security groups of the backend cloud servers to allow access from 100.125.0.0/16.
-You can create alarm rules to monitor the status of your APIs.
-An alarm rule consists of a rule name, monitored objects, metrics, alarm thresholds, monitoring interval, and notification.
-An API has been called.
-Table 1 lists the error codes that you may encounter when calling APIs.
-Error Code - |
-Error Message - |
-HTTP Status Code - |
-Description - |
-Solution - |
-
---|---|---|---|---|
APIG.0101 - |
-The API does not exist or has not been published in the environment. - |
-404 - |
-The API does not exist or has not been published in the environment. - |
-Check whether the domain name, method, and path are consistent with those of the registered API. Check whether the API has been published. If it has been published in a non-production environment, check whether the X-Stage header in the request is the environment name. Check whether the domain name used to call the API has been bound to the group to which the API belongs. - |
-
APIG.0101 - |
-The API does not exist. - |
-404 - |
-The API request method does not exist. - |
-Check whether the API request method is the same as the method defined by the API. - |
-
APIG.0103 - |
-The backend does not exist. - |
-500 - |
-The backend service was not found. - |
-Contact technical support. - |
-
APIG.0104 - |
-The plug-ins do not exist. - |
-500 - |
-No plug-in configurations were found. - |
-Contact technical support. - |
-
APIG.0105 - |
-The backend configurations do not exist. - |
-500 - |
-No backend configurations were found. - |
-Contact technical support. - |
-
APIG.0106 - |
-Orchestration error. - |
-400 - |
-An orchestration error occurred. - |
-Check whether the frontend and backend parameters of the API are correct. - |
-
APIG.0201 - |
-API request error. - |
-400 - |
-Invalid request parameters. - |
-Set valid request parameters. - |
-
APIG.0201 - |
-Request entity too large. - |
-413 - |
-The request body exceeds 12 MB. - |
-Reduce the size of the request body. - |
-
APIG.0201 - |
-Request URI too large. - |
-414 - |
-The request URI exceeds 32 KB. - |
-Reduce the size of the request URI. - |
-
APIG.0201 - |
-Request headers too large. - |
-494 - |
-The request headers are too large because one of them exceeds 32 KB or the total length exceeds 128 KB. - |
-Reduce the size of the request headers. - |
-
APIG.0201 - |
-Backend unavailable. - |
-502 - |
-The backend service is unavailable. - |
-Check whether the backend address configured for the API is accessible. - |
-
APIG.0201 - |
-Backend timeout. - |
-504 - |
-The backend service has timed out. - |
-Increase the timeout duration of the backend service or shorten the processing time. - |
-
APIG.0201 - |
-An unexpected error occurred - |
-500 - |
-An internal error occurred. - |
-Contact technical support. - |
-
APIG.0202 - |
-Backend unavailable - |
-502 - |
-The backend is unavailable. - |
-Check whether the backend request protocol configured for the API is the same as the request protocol used by the backend service. - |
-
APIG.0203 - |
-Backend timeout. - |
-504 - |
-The backend service has timed out. - |
-Increase the timeout of the backend service or shorten its processing time. - |
-
APIG.0204 - |
-SSL protocol is not supported: TLSv1.1 - |
-400 - |
-The SSL protocol version is not supported. - |
-Use a supported SSL protocol version. - |
-
APIG.0301 - |
-Incorrect IAM authentication information. - |
-401 - |
-The IAM authentication details are incorrect. - |
-Check whether the token is correct. - |
-
APIG.0302 - |
-The IAM user is not authorized to access the API. - |
-403 - |
-The IAM user is not allowed to access the API. - |
-Check whether the user is controlled by a blacklist or whitelist. - |
-
APIG.0303 - |
-Incorrect app authentication information. - |
-401 - |
-The app authentication details are incorrect. - |
-Check whether the request method, path, query strings, and request body are consistent with those used for signing; check whether the date and time on the client are correct; and check whether the signing code is correct by referring to section "Calling APIs Through App Authentication" in the Developer Guide. - |
-
APIG.0304 - |
-The app is not authorized to access the API. - |
-403 - |
-The app is not allowed to access the API. - |
-Check whether the app has been authorized to access the API. - |
-
APIG.0305 - |
-Incorrect authentication information. - |
-401 - |
-The authentication information is incorrect. - |
-Check whether the authentication information is correct. - |
-
APIG.0306 - |
-API access denied. - |
-403 - |
-Access to the API is not allowed. - |
-Check whether you have been authorized to access the API. - |
-
APIG.0307 - |
-The token must be updated. - |
-401 - |
-The token needs to be updated. - |
-Obtain a new token from IAM. - |
-
APIG.0308 - |
-The throttling threshold has been reached. - |
-429 - |
-The throttling threshold has been reached. - |
-Try again after the throttling resumes. If the number of subdomain requests per day is reached, bind an independent domain name to the API. - |
-
APIG.0310 - |
-The project is unavailable. - |
-403 - |
-The project is currently unavailable. - |
-Select another project and try again. - |
-
APIG.0311 - |
-Incorrect debugging authentication information. - |
-401 - |
-The debugging authentication details are incorrect. - |
-Contact technical support. - |
-
APIG.0401 - |
-Unknown client IP address. - |
-403 - |
-The client IP address cannot be identified. - |
-Contact technical support. - |
-
APIG.0402 - |
-The IP address is not authorized to access the API. - |
-403 - |
-The IP address is not allowed to access the API. - |
-Check whether the IP address is controlled by a blacklist or whitelist. - |
-
APIG.0404 - |
-Access to the backend IP address has been denied. - |
-403 - |
-The backend IP address cannot be accessed. - |
-Check whether the backend IP address or the IP address corresponding to the backend domain name is accessible. - |
-
APIG.0501 - |
-The app quota has been used up. - |
-405 - |
-The app quota has been reached. - |
-Increase the app quota. - |
-
APIG.0502 - |
-The app has been frozen. - |
-405 - |
-The app has been frozen. - |
-Check whether your account balance is sufficient. - |
-
APIG.0601 - |
-Internal server error. - |
-500 - |
-An internal error occurred. - |
-Contact technical support. - |
-
APIG.0602 - |
-Bad request. - |
-400 - |
-Invalid request. - |
-Check whether the request is valid. - |
-
APIG.0605 - |
-Domain name resolution failed. - |
-500 - |
-Domain name resolution failed. - |
-Check whether the domain name is correct and has been bound to a correct backend address. - |
-
APIG.0606 - |
-Failed to load the API configurations. - |
-500 - |
-API configurations could not be loaded. - |
-Contact technical support. - |
-
APIG.0607 - |
-The following protocol is supported: {xxx} - |
-400 - |
-The protocol is not supported. Only xxx is supported. -xxx is subject to the actual value in the response. - |
-Use HTTP or HTTPS to access the API. - |
-
APIG.0608 - |
-Failed to obtain the admin token. - |
-500 - |
-The tenant details cannot be obtained. - |
-Contact technical support. - |
-
APIG.0609 - |
-The VPC backend does not exist. - |
-500 - |
-The VPC backend service cannot be found. - |
-Contact technical support. - |
-
APIG.0610 - |
-No backend available. - |
-502 - |
-No backend services are available. - |
-Check whether all backend services are available. For example, check whether the API calling information is consistent with the actual configuration. - |
-
APIG.0611 - |
-The backend port does not exist. - |
-500 - |
-The backend port was not found. - |
-Contact technical support. - |
-
APIG.0612 - |
-An API cannot call itself. - |
-500 - |
-An API cannot call itself. - |
-Modify the backend configurations, and ensure that the number of layers the API is recursively called does not exceed 10. - |
-
APIG.0613 - |
-The IAM service is currently unavailable. - |
-503 - |
-IAM is currently unavailable. - |
-Contact technical support. - |
-
APIG.0705 - |
-Backend signature calculation failed. - |
-500 - |
-Backend signature calculation failed. - |
-Contact technical support. - |
-
APIG.0802 - |
-The IAM user is forbidden in the currently selected region - |
-403 - |
-The IAM user is disabled in the current region. - |
-Contact technical support. - |
-
APIG.1009 - |
-AppKey or AppSecret is invalid - |
-400 - |
-The AppKey or AppSecret is invalid. - |
-Check whether the AppKey or AppSecret in the request is correct. - |
-
For security reasons, browsers restrict cross-origin requests initiated from within scripts. This means that a web application can only request resources from its origin. The CORS mechanism allows browsers to send XMLHttpRequest to servers in other domains and request access to the resources there.
-There are two types of CORS requests:
-In the header of a simple request, browsers automatically add the Origin field to specify the origin (including the protocol, domain, and port) of the request. After receiving such a request, the target server determines whether the request is safe and can be accepted based on the origin. If the server sends a response containing the Access-Control-Allow-Origin field, the server accepts the request.
-Requests that do not meet the conditions for simple requests are not-so-simple requests.
-Before sending a not-so-simple request, browsers send an HTTP preflight request to the target server to confirm whether the origin the web page is loaded from is in the allowed origin list, and to confirm which HTTP request methods and header fields can be used. If the preflight request is successful, browsers send simple requests to the server.
-CORS is disabled by default. To enable CORS for an API, perform the operations described in this section. To customize request headers, request methods, and origins allowed for cross-domain access, create a CORS plug-in.
-When creating an API, enable CORS on the API request configuration page. For more information, see Simple Request.
-If your API will receive not-so-simple requests, create another API that will be accessed using the OPTIONS method in the same group as the target API to receive preflight requests.
-Follow this procedure to define the preflight request API. For more information, see Not-So-Simple Request.
-When creating an API that will receive simple requests, enable CORS for the API.
-Scenario 1: If CORS is enabled and the response from the backend does not contain a CORS header, APIG handles requests from any domain, and returns the Access-Control-Allow-Origin header. For example:
-Request sent by a browser and containing the Origin header field:
-GET /simple HTTP/1.1 -Host: www.test.com -Origin: http://www.cors.com -Content-Type: application/x-www-form-urlencoded; charset=utf-8 -Accept: application/json -Date: Tue, 15 Jan 2019 01:25:52 GMT-
Origin: This field is required to specify the origin (http://www.cors.com in this example) of the request. APIG and the backend service determine based on the origin whether the request is safe and can be accepted.
-Response sent by the backend service:
-HTTP/1.1 200 OK -Date: Tue, 15 Jan 2019 01:25:52 GMT -Content-Type: application/json -Content-Length: 16 -Server: api-gateway - -{"status":"200"}-
Response sent by APIG:
-HTTP/1.1 200 OK -Date: Tue, 15 Jan 2019 01:25:52 GMT -Content-Type: application/json -Content-Length: 16 -Server: api-gateway -X-Request-Id: 454d689fa69847610b3ca486458fb08b -Access-Control-Allow-Origin: * - -{"status":"200"}-
Access-Control-Allow-Origin: This field is required. The asterisk (*) means that APIG handles requests sent from any domain.
-Scenario 2: If CORS is enabled and the response from the backend contains a CORS header, the header will overwrite that added by APIG. The following messages are used as examples:
-Request sent by a browser and containing the Origin header field:
-GET /simple HTTP/1.1 -Host: www.test.com -Origin: http://www.cors.com -Content-Type: application/x-www-form-urlencoded; charset=utf-8 -Accept: application/json -Date: Tue, 15 Jan 2019 01:25:52 GMT-
Origin: This field is required to specify the origin (http://www.cors.com in this example) of the request. APIG and the backend service determine based on the origin whether the request is safe and can be accepted.
-Response sent by the backend service:
-HTTP/1.1 200 OK -Date: Tue, 15 Jan 2019 01:25:52 GMT -Content-Type: application/json -Content-Length: 16 -Server: api-gateway -Access-Control-Allow-Origin: http://www.cors.com - -{"status":"200"}-
Access-Control-Allow-Origin: Indicates that the backend service accepts requests sent from http://www.cors.com.
-Response sent by APIG:
-HTTP/1.1 200 OK -Date: Tue, 15 Jan 2019 01:25:52 GMT -Content-Type: application/json -Content-Length: 16 -Server: api-gateway -X-Request-Id: 454d689fa69847610b3ca486458fb08b -Access-Control-Allow-Origin: http://www.cors.com - -{"status":"200"}-
The CORS header in the backend response overwrites that in APIG's response.
-When creating an API that will receive not-so-simple requests, enable CORS for the API by following the instructions in Configuring CORS, and create another API that will be accessed using the OPTIONS method.
-If you use the CORS plug-in for an API, you do not need to create another API that uses the OPTIONS method.
-The request parameters of an API accessed using the OPTIONS method must be set as follows:
-The following are example requests and responses sent to or from a mock backend.
-Request sent from a browser to an API that is accessed using the OPTIONS method:
-OPTIONS /HTTP/1.1 -User-Agent: curl/7.29.0 -Host: localhost -Accept: */* -Origin: http://www.cors.com -Access-Control-Request-Method: PUT -Access-Control-Request-Headers: X-Sdk-Date-
Response sent by the backend: none
-Response sent by APIG:
-HTTP/1.1 200 OK -Date: Tue, 15 Jan 2019 02:38:48 GMT -Content-Type: application/json -Content-Length: 1036 -Server: api-gateway -X-Request-Id: c9b8926888c356d6a9581c5c10bb4d11 -Access-Control-Allow-Origin: * -Access-Control-Allow-Headers: X-Stage,X-Sdk-Date,X-Sdk-Nonce,X-Proxy-Signed-Headers,X-Sdk-Content-Sha256,X-Forwarded-For,Authorization,Content-Type,Accept,Accept-Ranges,Cache-Control,Range -Access-Control-Expose-Headers: X-Request-Id,X-Apig-Latency,X-Apig-Upstream-Latency,X-Apig-RateLimit-Api,X-Apig-RateLimit-User,X-Apig-RateLimit-App,X-Apig-RateLimit-Ip,X-Apig-RateLimit-Api-Allenv -Access-Control-Allow-Methods: GET,POST,PUT,DELETE,HEAD,OPTIONS,PATCH -Access-Control-Max-Age: 172800-
Request sent by a browser and containing the Origin header field:
-PUT /simple HTTP/1.1 -Host: www.test.com -Origin: http://www.cors.com -Content-Type: application/x-www-form-urlencoded; charset=utf-8 -Accept: application/json -Date: Tue, 15 Jan 2019 01:25:52 GMT-
Response sent by the backend:
-HTTP/1.1 200 OK -Date: Tue, 15 Jan 2019 01:25:52 GMT -Content-Type: application/json -Content-Length: 16 -Server: api-gateway - -{"status":"200"}-
Response sent by APIG:
-HTTP/1.1 200 OK -Date: Tue, 15 Jan 2019 01:25:52 GMT -Content-Type: application/json -Content-Length: 16 -Server: api-gateway -X-Request-Id: 454d689fa69847610b3ca486458fb08b -Access-Control-Allow-Origin: * - -{"status":"200"}- -
Access control policies are a type of security measures provided by APIG. You can use them to allow or deny API access from specific IP addresses or accounts.
-Access control policies take effect for an API only if they have been bound to the API.
-Each API can be bound with only one access control policy for a given environment, but each access control policy can be bound to multiple APIs.
-Parameter - |
-Description - |
-
---|---|
Name - |
-Access control policy name. - |
-
Restriction Type - |
-Type of the source from which API calls are to be controlled. -
|
-
Effect - |
-Options: Allow and Deny. -Use this parameter along with Restriction Type to control the access of certain IP addresses or accounts to an API. - |
-
IP Address - |
-IP addresses and IP address ranges that are allowed or not allowed to access an API -You need to set this parameter only if you have set Restriction Type to IP address. - NOTE:
-You can set a maximum of 100 IP addresses respectively to allow or deny access. - |
-
Account Names - |
-Names of the accounts that are allowed or not allowed to access an API. This parameter only applies to APIs that are accessed through IAM authentication. -You need to set this parameter only if you have set Restriction Type to Account name. You can enter multiple account names and separate them with commas, for example, aaa,bbb. - NOTE:
-APIG performs access control on accounts, not IAM users created using accounts. - |
-
If an access control policy is no longer needed for an API, you can unbind it from that API. To unbind an access control policy from multiple APIs, select the APIs, and click Unbind. You can unbind a request throttling policy from a maximum of 1000 APIs at a time.
-You can delete access control policies you no longer require.
-You have created an access control policy.
-The following table describes the response headers that APIG adds to the response returned when an API is called.
-X-Apig-Mode: debug indicates API debugging information.
- -Response Header - |
-Description - |
-Remarks - |
-
---|---|---|
X-Request-Id - |
-Request ID. - |
-Returned for all valid requests. - |
-
X-Apig-Latency - |
-Duration from the time when APIG receives a request to the time when the backend returns a message header. - |
-Returned only when the request header contains X-Apig-Mode: debug. - |
-
X-Apig-Upstream-Latency - |
-Duration from the time when APIG sends a request to the backend to the time when the backend returns a message header. - |
-Returned only when the request header contains X-Apig-Mode: debug and the backend type is not Mock. - |
-
X-Apig-RateLimit-api - |
-API request limit information. -Example: remain:9,limit:10,time:10 second. - |
-Returned only when the request header contains X-Apig-Mode: debug and a limit has been configured for the number of times the API can be called. - |
-
X-Apig-RateLimit-user - |
-User request limit information. -Example: remain:9,limit:10,time:10 second. - |
-Returned only when the request header contains X-Apig-Mode: debug and a limit has been configured for the number of times the API can be called by a user. - |
-
X-Apig-RateLimit-app - |
-App request limit information. -Example: remain:9,limit:10,time:10 second. - |
-Returned only when the request header contains X-Apig-Mode: debug and a limit has been configured for the number of times the API can be called by an app. - |
-
X-Apig-RateLimit-ip - |
-IP address request limit information. -Example: remain:9,limit:10,time:10 second. - |
-Returned only when the request header contains X-Apig-Mode: debug and a limit has been configured for the number of times the API can be called by an IP address. - |
-
X-Apig-RateLimit-api-allenv - |
-Default API request limit information. -Example: remain:199,limit:200,time:1 second. - |
-Returned only when the request header contains X-Apig-Mode: debug. - |
-
APIG allows you to import Swagger 2.0 APIs to existing or new API groups. Swagger is an open-source tool built based on OpenAPI specifications to design, build, record, and use REST APIs.
-You can import APIs individually or in batches depending on the number of APIs contained in a Swagger file.
--
Parameter - |
-Description - |
-
---|---|
Import - |
-Options: -
|
-
API group - |
-Select an API group if you set Import to Existing group. - |
-
Basic Definition Overwrite - |
-Determine whether to overwrite an existing API if the name of the API is the same as that of an imported API. -This parameter is available only if you set Import to Existing group. - |
-
Extended Definition Overwrite - |
-If this option is selected, the extended definition items (access control and request throttling policies) of an imported API will overwrite the existing policies with the same name. - |
-
YAML and JSON files are supported. You can preview the API content to be imported on the Import API page.
- -You can configure the global settings for the APIs, such as frontend and backend requests, or modify other parameters of the APIs.
-Imported APIs must be manually published so that they become available for users to access.
-Publish the imported API in an environment so that it can be called by users.
-You can export APIs one by one or in batches as JSON or YAML files.
-You have created an API group and API.
--
Parameter - |
-Description - |
-
---|---|
API Group - |
-Select the API group from which APIs will be exported. - |
-
Environment - |
-Select the environment where the APIs to be exported have been published. - |
-
APIs - |
-By default, all APIs in the API group that have been published in the selected environment are exported. To export only specific APIs, click Select API, and specify the APIs you want to export. - |
-
API Definition - |
-
|
-
Format - |
-Export APIs in JSON or YAML format. - |
-
Version - |
-Set the version of the APIs to be exported. If you do not specify a version, the version will be set as the current date and time. - |
-
The export result is displayed on the right.
-Check whether the policy has been bound to an API.
+You may encounter the following errors related to IAM authentication information:
-{ - "error_msg": "Incorrect IAM authentication information: verify aksk signature fail, ...... +You may encounter the following errors related to IAM authentication information:
++
- Incorrect IAM authentication information: AK access failed to reach the limit,forbidden
- Incorrect IAM authentication information: decrypt token fail
- Incorrect IAM authentication information: Get secretKey failed
-Incorrect IAM authentication information: AK access failed to reach the limit,forbidden
{ + "error_msg": "Incorrect IAM authentication information: AK access failed to reach the limit,forbidden." ...... "error_code": "APIG.0301", "request_id": "******" }Possible Cause
-The signature algorithm is incorrect, and the signature calculated by the client is different from that calculated by APIG.
-Solution
--
- Obtain the canonicalRequest calculated by APIG.
Obtain request_id from the body of the error message, search for error.log (you can view this file on CLS) of the shubao node based on request_id, and obtain canonicalRequest from error.log.-2019/01/26 11:34:27 [error] 1211#0: *76 [lua] responses.lua:170: rewrite(): 473a4370fbaf69e42f9da243eb8f8c52;app-1;Incorrect IAM authentication information: verify signature fail;SDK-HMAC-SHA256 Access=071fe245-9cf6-4d75-822d-c29945a1e06a, SignedHeaders=host;x-sdk-date, Signature=b2ef2cddcef89cbfe22974c988909c1a94b1ac54114c30b8fe083d34a259e0f5;canonicalRequest:GET -/app1/ - -host:test.com -x-sdk-date:20190126T033427Z - -host;x-sdk-date -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855, client: 192.168.0.1, server: shubao, request: "GET /app1 HTTP/1.1", host: "test.com"-- Obtain the canonicalRequest calculated by the client by printing logs or using debug interrupts. The following table describes the functions used to calculate the canonicalRequest in the SDKs of different languages.
-
--
Table 1 Functions for calculating canonicalRequest in the SDKs of common languages - - - Language
-- Function
-- - Java
-- Sign function in com.cloud.sdk.auth.signer.DefaultSigner.class of libs/java-sdk-core-*.jar
-- - C
-- sig_sign function in signer.c
-- - C++
-- Signer::createSignature function in signer.cpp.
-- - C#
-- Sign function in signer.cs
-- - Go
-- Sign function in signer.go
-- - JavaScript
-- Signer.prototype.Sign function in signer.js
-- - Python
-- Sign function in signer.py
-- - - PHP
-- Sign function in signer.php
-Example: cannonicalRequest obtained at a debug interrupt
-POST -/app1/ - -host:test.com -x-sdk-date:20190126T033950Z - -host;x-sdk-date -e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855-- Check whether the cannonicalRequest in 1 is the same as that in 2.
- -
- Yes: Check whether the AK and SK are correct, for example, without spaces.
- No:
-
- Different in line 1: The request method must be the same.
- Different in line 2: The request path must be the same.
- Different in line 3: The request parameters must be the same.
- Different in lines 4 to 5: The request header must be the same in each line.
- Different in line 7: The number of request header parameters must be the same as the number of request header lines.
- Different in line 8: The request body must be the same.
--
Table 2 canonicalRequest of APIG and a client - - - Line No.
-- Parameter
-- APIG
-- Client
-- - 1
-- Request method
-- GET
-- POST
-- - 2
-- Request path
-- /app1/
-- /app1/
-- - 3
-- Request parameters
-- None
-- None
-- - 4
-- Request header
-- host:test.com
-- host:test.com
-- - 5
-- Request header
-- x-sdk-date:20190126T033427Z
-- x-sdk-date:20190126T033950Z
-- - 6
-- Blank line
-- -
-- -
-- - 7
-- Request header parameters
-- host;x-sdk-date
-- host;x-sdk-date
-- - - 8
-- Request body hash value
-- e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
-- e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
--Incorrect IAM authentication information: AK access failed to reach the limit,forbidden
{ - "error_msg": "Incorrect IAM authentication information: AK access failed to reach the limit,forbidden." ...... - "error_code": "APIG.0301", - "request_id": "******" -}-Possible Causes
--
- The AK/SK signature calculation is incorrect. Resolve the problem by referring to Incorrect IAM authentication information: verify aksk signature fail.
- The AK and SK do not match.
- AK/SK authentication fails for more than five consecutive times, and the AK/SK pair is locked for five minutes. (Authentication requests are rejected within this period).
- An expired token is used for token authentication.
Incorrect IAM authentication information: decrypt token fail
{ - "error_msg": "Incorrect IAM authentication information: decrypt token fail", +Possible Causes
++
- The AK/SK signature calculation is incorrect.
- The AK and SK do not match.
- AK/SK authentication fails for more than five consecutive times, and the AK/SK pair is locked for five minutes. (Authentication requests are rejected within this period).
- An expired token is used for token authentication.
-Incorrect IAM authentication information: decrypt token fail
{ + "error_msg": "Incorrect IAM authentication information: decrypt token fail", "error_code": "APIG.0301", "request_id": "******" }-Possible Cause
-The token cannot be parsed for IAM authentication of the API.
-Solution
-+
- Check whether the token is correct.
- Check whether the token has been obtained in the environment where the API is called.
Possible Cause
+The token cannot be parsed for IAM authentication of the API.
+Solution
+
- Check whether the obtained token is the token of the corresponding IAM account.
- Check whether the token is correct.
- Check whether the token has been obtained in the environment where the API is called.
Incorrect IAM authentication information: Get secretKey failed
{ -"error_msg": "Incorrect IAM authentication information: Get secretKey failed,ak:******,err:ak not exist", +Incorrect IAM authentication information: Get secretKey failed
{ +"error_msg": "Incorrect IAM authentication information: Get secretKey failed,ak:******,err:ak not exist", "error_code": "APIG.0301", "request_id": "******" }-Possible Cause
-The AK used for IAM authentication of the API does not exist.
-Solution
-Check whether the AK is correct.
+Possible Cause
+The AK used for IAM authentication of the API does not exist.
+Solution
+Check whether the AK is correct.
diff --git a/docs/apig/umn/apig-faq-0004.html b/docs/apig/umn/apig-faq-0004.html index bcd3b8ee..1640bdb8 100644 --- a/docs/apig/umn/apig-faq-0004.html +++ b/docs/apig/umn/apig-faq-0004.html @@ -1,27 +1,19 @@Why Am I Seeing the Message "Backend domain name resolution failed" When a Backend Service Is Called?
-An error message indicating a domain name resolution failure is displayed when the backend service is called, although private domain name resolution is completed for the VPC where the API gateway is located.
-Possible Cause
-The VPC of the API gateway is isolated from that of the backend service. Private domain names can be resolved only for the VPC of the backend service.
-Solution
-
- Method 1: When creating an API, set Backend Address to a public network domain name.
- Method 2: When creating an API, do not use a VPC channel. Instead, set Backend Address to the backend service IP address, and add a constant parameter to specify the Host field in the header.
-
- Method 3: When creating an API, specify a VPC channel.
+
- Create a VPC channel. -
- Add the backend service address. -
- When creating an API, select the VPC channel and configure a custom header. -
An error message indicating a domain name resolution failure is displayed when the backend service is called, although private domain name resolution is completed for the VPC where the API gateway is located.
+Possible Cause
+The VPC of the API gateway is isolated from that of the backend service. Private domain names can be resolved only for the VPC of the backend service.
+Solution
+
- Method 1: When creating an API, set Backend Address to a public network domain name.
- Method 2: When creating an API, do not use a VPC channel (load balance channel). Instead, set Backend Address to the backend service IP address, and add a constant parameter to specify the Host field in the header. +
- Method 3: When creating an API, specify a VPC channel (load balance channel).
- - \ No newline at end of file diff --git a/docs/apig/umn/apig-faq-0007.html b/docs/apig/umn/apig-faq-0007.html index 9cc8c0f9..a0078d5f 100644 --- a/docs/apig/umn/apig-faq-0007.html +++ b/docs/apig/umn/apig-faq-0007.html @@ -1,12 +1,12 @@-Parent topic: API Calling+Parent topic: API CallingHow Can I Access Backend Services over Public Networks Through APIG?
-Enable public access for the relevant gateway to allow external services to call APIs.
-If you encounter a network problem when calling APIs, see What Are the Possible Causes for an API Calling Failure?
+Enable public access for the relevant gateway to allow external services to call APIs.
+If you encounter a network problem when calling APIs, see What Are the Possible Causes for an API Calling Failure?
diff --git a/docs/apig/umn/apig-faq-0008.html b/docs/apig/umn/apig-faq-0008.html new file mode 100644 index 00000000..811c0e5c --- /dev/null +++ b/docs/apig/umn/apig-faq-0008.html @@ -0,0 +1,12 @@ + + +-Parent topic: API Calling+Parent topic: API CallingAre Client IP Addresses Verified for Access Control?
++Not necessarily.
+In APIG, access control is based on the value of $remote_addr. $remote_addr indicates a client IP address and is determined by the access mode. If a client accesses APIG without using any proxy, remote_addr is the client's IP address. If a client accesses APIG using a proxy, the client first accesses the proxy, and the proxy then forwards the request to APIG. In this case, remote_addr is the proxy's IP address.
+++ diff --git a/docs/apig/umn/apig-faq-0009.html b/docs/apig/umn/apig-faq-0009.html new file mode 100644 index 00000000..b2cd8d0f --- /dev/null +++ b/docs/apig/umn/apig-faq-0009.html @@ -0,0 +1,33 @@ + + +++Parent topic: Access Control+What Should I Do If the App Authentication Information Is Incorrect?
++You may encounter the following errors related to app authentication information:
++
- Incorrect app authentication information: app not found, appkey xxx
- Incorrect app authentication information: signature expired
+Incorrect app authentication information: app not found, appkey xxx
{ + "error_msg": "Incorrect app authentication information: app not found, appkey 01177c425f71487ea362ba84dc4abe5e1", + "error_code": "APIG.0303", + "request_id": "a5322eb89048eb41d705491a76a05aca" +}+Possible Causes
+The AppKey is incorrect.
+Solution
++
- In the navigation pane of the APIG console, choose API Management > Credentials.
- Click the corresponding credential name to go to the details page.
- Check the Key and reconfigure the AppKey.
+Incorrect app authentication information: signature expired
{ + "error_msg": "Incorrect app authentication information: signature expired, signature time:20230527T000431Z,server time:20230527T020608Z", + "error_code": "APIG.0303", + "request_id": "fd6530a01c09807640189e65e837b8ad" + +}+Possible Causes
+The difference between the client's signature timestamp x-sdk-date and the APIG server's time exceeds 15 minutes.
+Solution
+Check whether the time on the client is correct.
+++ diff --git a/docs/apig/umn/apig-faq-180307001.html b/docs/apig/umn/apig-faq-180307001.html new file mode 100644 index 00000000..97a69452 --- /dev/null +++ b/docs/apig/umn/apig-faq-180307001.html @@ -0,0 +1,17 @@ + + +++Parent topic: API Authentication+What Are the Error Messages Returned by APIG Like?
++When receiving an API request, APIG returns a response. A similar response body is as follows:
+{ + "error_code": "APIG.0101", + "error_msg": "API does not exist or is not published in the environment.", + "request_id": "acbc548ac6f2a0dbdb9e3518a7c0ff84" +}++
- "error_code": error code
- "error_msg": description of the error
++ diff --git a/docs/apig/umn/apig-faq-180307002.html b/docs/apig/umn/apig-faq-180307002.html new file mode 100644 index 00000000..62c2f564 --- /dev/null +++ b/docs/apig/umn/apig-faq-180307002.html @@ -0,0 +1,13 @@ + + +++Parent topic: Other FAQs+Do I Need to Publish an API Again After Modification?
++Yes.
+After you modify the parameters of a published API, you must publish the API again to synchronize the modifications to the environment.
+For details, see section "Publishing an API" in the API Gateway User Guide.
+++ diff --git a/docs/apig/umn/apig-faq-180307003.html b/docs/apig/umn/apig-faq-180307003.html new file mode 100644 index 00000000..d8107d59 --- /dev/null +++ b/docs/apig/umn/apig-faq-180307003.html @@ -0,0 +1,14 @@ + + +++Parent topic: API Publishing+How Can I Protect My APIs?
+++
- Identity authentication
Configure IAM or App authentication for APIs to prevent malicious calling.
+- Access control policies
Configure a whitelist or blacklist of IP addresses/IP address ranges or accounts for APIs to secure access.
+- Request throttling policies
By default, an API can be called up to 200 times per second. If your backend service does not support this access rate, decrease the quota accordingly.
+++ diff --git a/docs/apig/umn/apig-faq-180307004.html b/docs/apig/umn/apig-faq-180307004.html new file mode 100644 index 00000000..85221304 --- /dev/null +++ b/docs/apig/umn/apig-faq-180307004.html @@ -0,0 +1,12 @@ + + +++Parent topic: API Security+Can Mobile Apps Call APIs?
++Yes, mobile apps can call APIs.
+In app authentication mode, the AppKey and AppSecret of a mobile app are replaced with those in the relevant SDK to sign the app.
+++ diff --git a/docs/apig/umn/apig-faq-180307006.html b/docs/apig/umn/apig-faq-180307006.html new file mode 100644 index 00000000..375035de --- /dev/null +++ b/docs/apig/umn/apig-faq-180307006.html @@ -0,0 +1,14 @@ + + +++Parent topic: API Calling+Can I Upload Files Using the POST Method?
++Yes.
+If you are using dedicated gateways, configure the maximum request body size allowed by setting the request_body_size parameter. The value ranges from 1 MB to 9536 MB.
++![]()
Currently, only the request body can be transparently transmitted.
+++ diff --git a/docs/apig/umn/apig-faq-180307008.html b/docs/apig/umn/apig-faq-180307008.html new file mode 100644 index 00000000..78d922de --- /dev/null +++ b/docs/apig/umn/apig-faq-180307008.html @@ -0,0 +1,31 @@ + + +++Parent topic: Other FAQs+Can Applications Deployed in a VPC Call APIs?
++Yes, applications deployed in a VPC can call APIs by default. If domain name resolution fails, configure a DNS server on the current endpoint by following the instructions in Configuring an Intranet DNS Server. After the configuration, applications deployed in the VPC can call APIs.
++Configuring an Intranet DNS Server
To configure a DNS server, specify its IP address in the /etc/resolv.conf file.
+The IP address of the intranet DNS server depends on which region you are located in. Find the IP address of the intranet DNS server in your region from the private DNS server addresses mentioned in "FAQs" of the Domain Name Service User Guide.
+Add an intranet DNS server with either of the following two methods:
++
- Method 1: Modify the subnet information of the VPC.
- Method 2: Edit the /etc/resolv.conf file.
+![]()
The intranet DNS server configurations become invalid after the ECS restarts, and the intranet DNS server must be configured again. Therefore, method 1 is recommended.
++Method 1
Perform the following procedure to add a DNS server IP address to the subnet configurations of the ECS in the VPC.
++
- Log in to the management console.
- Click
in the upper left corner to select a region.
- In the service list, choose Compute > Elastic Cloud Server.
- Click the name of the ECS you want to use.
- On the Network Interfaces tab page, click
to view the subnet name.
- On the Summary tab page, view the VPC name.
- Click the VPC name to visit the VPC console.
- Choose Subnets in the left navigation pane.
- Locate the subnet mentioned in 5 and click the subnet name.
- Change the DNS server address of the subnet and click OK.
For example, change the address to 100.125.1.250.
+- Restart the ECS. Check that the /etc/resolv.conf file contains the IP address of the DNS server to be configured, and the IP address is less than those of all other DNS servers.
The following figure shows the IP address 100.125.1.250 of the DNS server to be configured.
++
+![]()
Modifying the subnet information of a VPC will affect all ECSs created using the subnet.
++Method 2
Add the IP address of the intranet DNS server to the /etc/resolv.conf file.
+For example, if you are located in region01, add an intranet DNS server of IP address 100.125.1.250 to the /etc/resolv.conf file.
++![]()
+
- The IP address of the new DNS server must be less than those of all other DNS servers.
- The DNS configurations take effect immediately after the /etc/resolv.conf file is saved.
++ diff --git a/docs/apig/umn/apig-faq-180307009.html b/docs/apig/umn/apig-faq-180307009.html new file mode 100644 index 00000000..27c91762 --- /dev/null +++ b/docs/apig/umn/apig-faq-180307009.html @@ -0,0 +1,15 @@ + + +++Parent topic: API Calling+How Do I Ensure the Security of Backend Services Invoked by APIG?
++You can ensure the security of backend services invoked by APIG by using the following methods:
++
- Bind signature keys to APIs
After a signature key is bound to an API, APIG adds signature information to each request sent to the backend service. The backend service calculates the signature information in each request and checks whether the signature information is consistent with that on APIG.
+- Encrypt requests using HTTPS +
- Perform backend authentication
Enable security authentication for backend services of the desired APIs to process only API requests that carry correct authentication information.
+++ diff --git a/docs/apig/umn/apig-faq-180606010.html b/docs/apig/umn/apig-faq-180606010.html new file mode 100644 index 00000000..c67afee3 --- /dev/null +++ b/docs/apig/umn/apig-faq-180606010.html @@ -0,0 +1,12 @@ + + +++Parent topic: API Security+What SDK Languages Does APIG Support?
++APIG supports Java, Go, Python, C#, JavaScript, PHP, C++, C, and Android SDKs.
+For details about SDKs, see the API Gateway Developer Guide.
+++ diff --git a/docs/apig/umn/apig-faq-180606011.html b/docs/apig/umn/apig-faq-180606011.html new file mode 100644 index 00000000..ecf73465 --- /dev/null +++ b/docs/apig/umn/apig-faq-180606011.html @@ -0,0 +1,14 @@ + + +++Parent topic: Other FAQs+Can I Access an API Published in a Non-RELEASE Environment?
++Yes. To access an API published in a non-RELEASE environment, add the x-stage header to the API request.
+Example:
+r.Header.Add("x-stage", "RELEASE")+You can also refer to examples of section "Quickly Opening and Calling APIs" in the "Getting Started" chapter of the API Gateway User Guide.
+++ diff --git a/docs/apig/umn/apig-faq-180606012.html b/docs/apig/umn/apig-faq-180606012.html new file mode 100644 index 00000000..eb972513 --- /dev/null +++ b/docs/apig/umn/apig-faq-180606012.html @@ -0,0 +1,13 @@ + + +++Parent topic: API Publishing+Does APIG Support Multiple Backend Endpoints?
++Yes
+APIG supports the configuration of multiple backend endpoints through a VPC channel (also called "load balance channel"). You can add multiple cloud servers to each VPC channel.
+For details, see section "Creating a VPC Channel (Load Balance Channel)" in the API Gateway User Guide.
+++ diff --git a/docs/apig/umn/apig-faq-180606013.html b/docs/apig/umn/apig-faq-180606013.html new file mode 100644 index 00000000..738eb3e7 --- /dev/null +++ b/docs/apig/umn/apig-faq-180606013.html @@ -0,0 +1,11 @@ + + +++Parent topic: API Creation+What Is the Maximum Size of an API Request Package?
++Dedicated gateway: APIG forwards only API requests whose body is no larger than 12 MB. If your gateway will receive requests with a body larger than 12 MB, modify the request_body_size parameter on the gateway details page. This parameter indicates the maximum request body size allowed. The value ranges from 1 MB to 9536 MB.
+++ diff --git a/docs/apig/umn/apig-faq-180919014.html b/docs/apig/umn/apig-faq-180919014.html new file mode 100644 index 00000000..bf26372f --- /dev/null +++ b/docs/apig/umn/apig-faq-180919014.html @@ -0,0 +1,26 @@ + + + + + +++Parent topic: API Calling+Other FAQs
+ +++ diff --git a/docs/apig/umn/apig-faq-180919015.html b/docs/apig/umn/apig-faq-180919015.html new file mode 100644 index 00000000..8a8b4648 --- /dev/null +++ b/docs/apig/umn/apig-faq-180919015.html @@ -0,0 +1,19 @@ + + ++
+ +- What Are the Relationships Between an API, Environment, and App (Credential)?
+
+- How Can I Use APIG?
+
+- What SDK Languages Does APIG Support?
+
+- Can I Upload Files Using the POST Method?
+
+- What Are the Error Messages Returned by APIG Like?
+
+++Parent topic: FAQs+API Security
+ +++ diff --git a/docs/apig/umn/apig-faq-180919016.html b/docs/apig/umn/apig-faq-180919016.html new file mode 100644 index 00000000..613a9a0a --- /dev/null +++ b/docs/apig/umn/apig-faq-180919016.html @@ -0,0 +1,24 @@ + + + + + ++
+ +- How Can I Protect My APIs?
+
+- How Do I Ensure the Security of Backend Services Invoked by APIG?
+
+- Can I Control Access to the Private IP Addresses of the ECSs in a VPC Channel (or Load Balance Channel)?
+
+++Parent topic: FAQs+API Publishing
+ +++ diff --git a/docs/apig/umn/apig-en-faq-180919017.html b/docs/apig/umn/apig-faq-180919017.html similarity index 70% rename from docs/apig/umn/apig-en-faq-180919017.html rename to docs/apig/umn/apig-faq-180919017.html index f5509640..8c757da2 100644 --- a/docs/apig/umn/apig-en-faq-180919017.html +++ b/docs/apig/umn/apig-faq-180919017.html @@ -1,20 +1,23 @@ - + + + ++
+ +- Do I Need to Publish an API Again After Modification?
+
+- Can I Access an API Published in a Non-RELEASE Environment?
+
+- Can I Invoke Different Backend Services by Publishing an API in Different Environments?
+
+- Can I Specify an Environment for API Debugging?
+
+++Parent topic: FAQs+API Calling
- +diff --git a/docs/apig/umn/apig-faq-181016018.html b/docs/apig/umn/apig-faq-181016018.html new file mode 100644 index 00000000..b62cfa4d --- /dev/null +++ b/docs/apig/umn/apig-faq-181016018.html @@ -0,0 +1,12 @@ + + +
- What Are the Possible Causes for an API Calling Failure?
- What Should I Do If an Error Code Is Returned During API Calling?
-
- Why Am I Seeing the Error Message "414 Request-URI Too Large" When I Call an API?
+- Why Am I Seeing the Error Message "414 Request URI too large" When I Call an API?
- What Should I Do If "The API does not exist or has not been published in the environment." Is Displayed?
-
- Why Am I Seeing the Message "No backend available"?
+- Why Am I Seeing the Message "No backend available"?
-
- What Are the Possible Causes If the Message "Backend unavailable" or "Backend timeout" Is Displayed?
+- What Are the Possible Causes If the Message "Backend unavailable" or "Backend timeout" Is Displayed?
- Why Am I Seeing the Message "Backend domain name resolution failed" When a Backend Service Is Called?
@@ -22,19 +25,19 @@
- How Do I Switch the Environment for API Calling?
-
- What Is the Maximum Size of an API Request Package?
+- What Is the Maximum Size of an API Request Package?
- How Do I Perform App Authentication in iOS System?
- Why Can't I Create a Header Parameter Named x-auth-token for an API Called Through IAM Authentication?
-
- App FAQs
+- App (Credential) FAQs
-
- Can Mobile Apps Call APIs?
+- Can Mobile Apps Call APIs?
-
- Can Applications Deployed in a VPC Call APIs?
+- Can Applications Deployed in a VPC Call APIs?
-
- How Do I Implement WebSocket Data Transmission?
+- Does APIG Support WebSocket Data Transmission?
- Does APIG Support Persistent Connections?
@@ -47,7 +50,7 @@
Why Am I Seeing the Message "No backend available"?
+++
- Check whether the backend service is accessible, and modify the backend service if it is inaccessible.
- Check the ECS security group configurations of the backend service and verify that the required port has been enabled.
- Check whether the backend service address is a public IP address. If yes, enable outbound access on the Gateways > Access Console > Gateway Information page.
- Check whether ACL configurations of the VPC restrict the communication between the API gateway and the subnet where the backend service is located.
- If you use a VPC channel, check whether the service port, health check port, and backend servers of the VPC channel have been correctly configured. +
++ diff --git a/docs/apig/umn/apig-faq-181016019.html b/docs/apig/umn/apig-faq-181016019.html new file mode 100644 index 00000000..f9f66604 --- /dev/null +++ b/docs/apig/umn/apig-faq-181016019.html @@ -0,0 +1,12 @@ + + +++Parent topic: API Calling+Can I Invoke Different Backend Services by Publishing an API in Different Environments?
++Yes, you can invoke different backend services by publishing an API in different environments while specifying environment variables and backend parameters.
+For details about environment variables, see section "Creating an Environment Variable" in the API Gateway User Guide.
+++ diff --git a/docs/apig/umn/apig-faq-190515025.html b/docs/apig/umn/apig-faq-190515025.html index 475c56c6..63ce41af 100644 --- a/docs/apig/umn/apig-faq-190515025.html +++ b/docs/apig/umn/apig-faq-190515025.html @@ -1,11 +1,12 @@++Parent topic: API Publishing+How Do I Perform App Authentication in iOS System?
-APIG provides SDKs and demos in multiple languages, such as Java, Python, C, PHP, and Go, for app authentication. To use Objective-C (for iOS) or other languages, see
+ .APIG provides SDKs and demos in multiple languages, such as Java, Python, C, PHP, and Go, for app authentication.
+To use Objective-C (for iOS) or other languages, see
.diff --git a/docs/apig/umn/apig-faq-190627027.html b/docs/apig/umn/apig-faq-190627027.html index 0c80c08d..78a80959 100644 --- a/docs/apig/umn/apig-faq-190627027.html +++ b/docs/apig/umn/apig-faq-190627027.html @@ -1,13 +1,16 @@-Parent topic: API Calling+Parent topic: API CallingWhy Does an API Failed to Be Called Across Domains?
-
- Ensure that CORS has been enabled for the API.
Go to the API details page, click Edit, and check whether CORS is enabled. If it is not, enable it.
-- Check whether an API with the OPTIONS method has been created. Only one such API is required for each API group.
- +
- On the Set Basic Information page, set the basic information for the API that uses the OPTIONS method.
Go to the API details page and click Edit.
-API Group: The group to which the API with CORS enabled belongs.
-Security Authentication: None means all users will be granted access. It is not recommended.
-- On the Define API Request page, set the request information for the API.
-
- Protocol: The same protocol used by the API with CORS enabled.
- Path: Same as or prefixally matching the request path set for the API with CORS enabled.
- Matching: Select Prefix match.
- Method: Select OPTIONS.
- CORS: Enable this option.
- Ensure that CORS has been enabled for the API.
Go to the API details page, click Edit, and check whether CORS is enabled. If it is not, enable it.
+- Check whether an API with the OPTIONS method has been created. Only one such API is required for each API group.
![]()
Parameters are as follows:
+API Group: The same group to which the API with CORS enabled belongs.
+Method: Select OPTIONS.
+Protocol: The same protocol used by the API with CORS enabled.
+Path: Same as or prefixally matching the request path set for the API with CORS enabled.
+Matching: Select Prefix match.
+Authentication Mode: None means all users will be granted access. It is not recommended.
+CORS: Enable this option.
+diff --git a/docs/apig/umn/apig-faq-190627028.html b/docs/apig/umn/apig-faq-190627028.html index d720c85f..268d6123 100644 --- a/docs/apig/umn/apig-faq-190627028.html +++ b/docs/apig/umn/apig-faq-190627028.html @@ -1,7 +1,8 @@How Can I Configure the Backend Service Address?
-Configure the backend service address as an ECS EIP, or the public IP address or domain name of your own server.
+Configure the backend service address as an ECS EIP, or the public IP address or domain name of your own server.
+For details about how to configure the API backend, see section "Creating an API" in the API Gateway User Guide.
diff --git a/docs/apig/umn/apig-faq-190627029.html b/docs/apig/umn/apig-faq-190627029.html index 345cfd3b..f24e4584 100644 --- a/docs/apig/umn/apig-faq-190627029.html +++ b/docs/apig/umn/apig-faq-190627029.html @@ -1,11 +1,12 @@Why Can't I Create a Header Parameter Named x-auth-token for an API Called Through IAM Authentication?
-The header parameter x-auth-token has already been defined in APIG. To use this parameter to call an API, add the parameter and its value to the request header.
+The header parameter x-auth-token has already been defined in APIG.
+To use this parameter to call an API, add the parameter and its value to the request header.
diff --git a/docs/apig/umn/apig-faq-190627030.html b/docs/apig/umn/apig-faq-190627030.html index b8ecc025..3e2932b7 100644 --- a/docs/apig/umn/apig-faq-190627030.html +++ b/docs/apig/umn/apig-faq-190627030.html @@ -1,20 +1,20 @@ --Parent topic: API Calling+Parent topic: API CallingApp FAQs
-How many apps can I create?
-You can create a maximum of 50 apps.
-How do I isolate the calling information among the third parties that call the same API through app authentication?
-Create multiple apps for different third parties and bind the apps to the same API.
-Are there any restrictions on the maximum number of third parties that can call the same app through app authentication?
-No restrictions.
-Do I need to create an app for an API so that it can be called through app authentication?
-Yes, you need to create an app and bind it to the API. After the app is created, an AppKey and AppSecret are automatically created. Provide the AppKey and AppSecret for third parties to call the API.
-How can an API be called by third parties through app authentication?
-Provide third parties with the AppKey and AppSecret of the app you have created for accessing the API. The third parties then can use the AppKey and AppSecret to call the API through an SDK. For details about how to use an SDK, see
+ .App (Credential) FAQs
+How many apps (credentials) can I create?
+You can create a maximum of 50 apps (credentials).
+How do I isolate the calling information among the third parties that call the same API through app authentication?
+Create multiple apps (credentials) for different third parties and bind the apps (credentials) to the same API.
+Are there any restrictions on the maximum number of third parties that can call the same app through app authentication?
+No restrictions.
+Do I need to create an app (credential) for an API so that it can be called through app authentication?
+Yes, you need to create an app (credential) and bind it to the API. After the app (credential) is created, an AppKey and AppSecret are automatically created. Provide the AppKey and AppSecret for third parties to call the API.
+How can an API be called by third parties through app authentication?
+Provide third parties with the AppKey and AppSecret of the app you have created for accessing the API. The third parties then can use the AppKey and AppSecret to call the API through an SDK. For details about how to use an SDK, see
.diff --git a/docs/apig/umn/apig-faq-190627032.html b/docs/apig/umn/apig-faq-190627032.html index 0f56bee3..107082ee 100644 --- a/docs/apig/umn/apig-faq-190627032.html +++ b/docs/apig/umn/apig-faq-190627032.html @@ -1,7 +1,8 @@ --Parent topic: API Calling+Parent topic: API CallingIs the Restriction of 1000 Requests to a Subdomain Name Applied to Enterprise Accounts?
-Yes.
+Is the Restriction of 1000 Requests per Day to a Subdomain Name (Debugging Domain Name) Applied to Enterprise Accounts?
+Yes.
+For details about subdomain names (debugging domain names), see section "Binding a Domain Name" in the API Gateway User Guide.
diff --git a/docs/apig/umn/apig-faq-190627033.html b/docs/apig/umn/apig-faq-190627033.html index 5813e4f3..5289a890 100644 --- a/docs/apig/umn/apig-faq-190627033.html +++ b/docs/apig/umn/apig-faq-190627033.html @@ -1,11 +1,12 @@ -How Do I Implement WebSocket Data Transmission?
-APIG supports WebSocket data transmission. When creating an API, you can select HTTP, HTTPS, or HTTP&HTTPS. HTTP is equivalent to WebSocket (ws), and HTTPS is equivalent to WebSocket Secure (wss).
+Does APIG Support WebSocket Data Transmission?
+Yes.
+When creating an API, you can select HTTP, HTTPS, or HTTP&HTTPS. HTTP is equivalent to WebSocket (ws), and HTTPS is equivalent to WebSocket Secure (wss).
diff --git a/docs/apig/umn/apig-faq-190803.html b/docs/apig/umn/apig-faq-190803.html deleted file mode 100644 index 0e9eaf33..00000000 --- a/docs/apig/umn/apig-faq-190803.html +++ /dev/null @@ -1,20 +0,0 @@ - - --Parent topic: API Calling+Parent topic: API CallingCommon FAQs
---API Creation
-
- How Do I Set the Backend Address If I Will Not Use a VPC Channel (or Load Balance Channel)?
- How Can I Configure the Backend Service Address?
- Can I Specify a Private Network Load Balancer Address for the Backend Service?
- Can I Specify the Backend Address as a Subnet IP Address?
- Can I Bind Private Domain Names for API Access?
-API Calling
-
- What Are the Possible Causes for an API Calling Failure?
- What Should I Do If an Error Code Is Returned During API Calling?
- What Should I Do If "The API does not exist or has not been published in the environment." Is Displayed?
- Why Am I Seeing the Message "No backend available"?
- What Are the Possible Causes If the Message "Backend unavailable" or "Backend timeout" Is Displayed?
-API Authentication
--API Control Policies
--API Import and Export
--- diff --git a/docs/apig/umn/apig-faq-191201.html b/docs/apig/umn/apig-faq-191201.html index 82817e1b..b2c4dded 100644 --- a/docs/apig/umn/apig-faq-191201.html +++ b/docs/apig/umn/apig-faq-191201.html @@ -1,11 +1,11 @@--Parent topic: FAQs-Can I Control Access to the Private IP Addresses of the ECSs in a VPC Channel (or Load Balance Channel)?
-No.
+No.
diff --git a/docs/apig/umn/apig-faq-19122001.html b/docs/apig/umn/apig-faq-19122001.html index e4ed75ce..700a79ab 100644 --- a/docs/apig/umn/apig-faq-19122001.html +++ b/docs/apig/umn/apig-faq-19122001.html @@ -1,11 +1,12 @@-Parent topic: API Security+Parent topic: API SecurityDoes APIG Support Persistent Connections?
-Yes. But you should use persistent connections properly to avoid occupying too many resources.
+Yes.
+But you should use persistent connections properly to avoid occupying too many resources.
diff --git a/docs/apig/umn/apig-faq-19122002.html b/docs/apig/umn/apig-faq-19122002.html index 6e74a113..b177b7a2 100644 --- a/docs/apig/umn/apig-faq-19122002.html +++ b/docs/apig/umn/apig-faq-19122002.html @@ -1,7 +1,7 @@ --Parent topic: API Calling+Parent topic: API CallingDoes APIG Has Bandwidth Limits?
-Dedicated gateways have bandwidth limits. When you create a dedicated gateway, you can set the bandwidth for public inbound and outbound access.
+Does APIG Have Bandwidth Limits?
+Dedicated gateways have bandwidth limits. When you create a dedicated gateway, you can set the bandwidth for public inbound and outbound access.
diff --git a/docs/apig/umn/apig-faq-19122003.html b/docs/apig/umn/apig-faq-19122003.html index 754b6037..b0073d5f 100644 --- a/docs/apig/umn/apig-faq-19122003.html +++ b/docs/apig/umn/apig-faq-19122003.html @@ -1,11 +1,12 @@Is There a Limit on the Size of the Response to an API Request?
-No.
+No.
+But there is a limit on the size of the request body. For details, see the request_body_size parameter in the API Gateway User Guide.
diff --git a/docs/apig/umn/apig-faq-19122004.html b/docs/apig/umn/apig-faq-19122004.html index 468b6b30..01dd9699 100644 --- a/docs/apig/umn/apig-faq-19122004.html +++ b/docs/apig/umn/apig-faq-19122004.html @@ -1,17 +1,17 @@-Parent topic: API Calling+Parent topic: API CallingWhy Doesn't Modification of the backend_timeout Parameter Take Effect?
-Problem Description
Modification of the backend_timeout parameter in a dedicated gateway does not take effect.
+-Problem Description
Modification of the backend_timeout parameter in gateways does not take effect.
Possible Causes
The Timeout (ms) parameter on the Define Backend Request page is not modified.
+-Possible Causes
The Timeout (ms) parameter on the Define Backend Request page is not modified.
Solution
Log in to the APIG console, go to the API details page, click Edit, and modify the Timeout (ms) parameter on the Define Backend Request page.
+- +Solution
Log in to the APIG console, go to the API details page, click Edit, and modify the Timeout (ms) parameter on the Define Backend Request page.
diff --git a/docs/apig/umn/apig-faq-19123001.html b/docs/apig/umn/apig-faq-19123001.html index 2d6b1723..b0beac06 100644 --- a/docs/apig/umn/apig-faq-19123001.html +++ b/docs/apig/umn/apig-faq-19123001.html @@ -1,12 +1,12 @@-Parent topic: API Calling+Parent topic: API CallingHow Will the Requests for an API with Multiple Backend Policies Be Matched and Executed?
-If multiple backend policies are configured for an API, APIG will match the backend policies in sequence. If an API request matches one of the backend policies, APIG immediately forwards the request to the corresponding backend and stops matching.
-If no backend policy is matched, the API request is forwarded to the default backend server.
+If multiple backend policies are configured for an API, APIG will match the backend policies in sequence. If an API request matches one of the backend policies, APIG immediately forwards the request to the corresponding backend and stops matching.
+If no backend policy is matched, the API request is forwarded to the default backend server.
diff --git a/docs/apig/umn/apig-faq-19123002.html b/docs/apig/umn/apig-faq-19123002.html index f9f4dab9..e3c2cb27 100644 --- a/docs/apig/umn/apig-faq-19123002.html +++ b/docs/apig/umn/apig-faq-19123002.html @@ -1,13 +1,13 @@-Parent topic: API Calling+Parent topic: API CallingWhat Should I Do If "The API does not exist or has not been published in the environment." Is Displayed?
-If an open API in APIG failed to be called, troubleshoot the failure by performing the following operations:
-+
- The domain name, request method, or path used for calling the API is incorrect.
-
- For example, an API created using the POST method is called with GET.
- Missing a slash (/) in the access URL will lead to a failure in matching the URL in the API details. For example, URLs http://7383ea59c0cd49a2b61d0fd1d351a619.apigw.region.cloud.com/test/ and http://7383ea59c0cd49a2b61d0fd1d351a619.apigw.region.cloud.com/test represent two different APIs.
- The API has not been published. APIs can be called only after they have been published in an environment. For details, see section "Publishing an API" in the User Guide. If the API has been published in a non-production environment, check whether the X-Stage header in the request is the name of the environment.
- The domain name is resolved incorrectly. If the domain name, request method, and path for calling the API are correct and the API has been published in an environment, the API may not be correctly resolved to the group to which the API belongs. For example, if you have multiple API groups and each group has an independent domain name, the API may be called using the independent domain name of another group. Ensure that the API is being called using the correct domain name.
- Check whether the API allows OPTIONS cross-region requests. If yes, enable cross-origin resource sharing (CORS) for the API, and create a new API that uses the OPTIONS method. For details, see section "CORS" in the User Guide.
If an open API in APIG failed to be called, troubleshoot the failure by performing the following operations:
+
- The domain name, request method, or path used for calling the API is incorrect.
+
- For example, an API created using the POST method is called with GET.
- Missing a slash (/) in the access URL will lead to a failure in matching the URL in the API details. For example, URLs http://7383ea59c0cd49a2b61d0fd1d351a619.apigw.region.cloud.com/test/ and http://7383ea59c0cd49a2b61d0fd1d351a619.apigw.region.cloud.com/test represent two different APIs.
- The API has not been published. APIs can be called only after they have been published in an environment. For details, see section "Publishing an API" in the API Gateway User Guide. If the API has been published in a non-production environment, check whether the X-Stage header in the request is the name of the environment.
- The domain name is resolved incorrectly. If the domain name, request method, and path for calling the API are correct and the API has been published in an environment, the API may not be correctly resolved to the group to which the API belongs. For example, if you have multiple API groups and each group has an independent domain name, the API may be called using the independent domain name of another group. Ensure that the API is being called using the correct domain name.
- Check whether the API allows OPTIONS cross-region requests. If yes, enable cross-origin resource sharing (CORS) for the API, and create an API that uses the OPTIONS method. For details, see section "CORS" in the API Gateway User Guide.
diff --git a/docs/apig/umn/apig-faq-2005001.html b/docs/apig/umn/apig-faq-2005001.html index e622a1ae..a2360856 100644 --- a/docs/apig/umn/apig-faq-2005001.html +++ b/docs/apig/umn/apig-faq-2005001.html @@ -1,7 +1,8 @@-Parent topic: API Calling+Parent topic: API CallingHow Do I Define Response Codes for an API?
-API responses are defined by backend services (API providers). API Gateway (APIG) only transparently transmits responses to API callers.
+There are two types of responses:
+
- Gateway response codes: returned by the gateway for API requests that are throttled, denied, or failed in authentication. For details about these response codes, see section "Creating a Gateway Response" in the API Gateway User Guide.
- Backend service responses: defined by backend API services (API providers) and transparently transmitted by APIG.
diff --git a/docs/apig/umn/apig-faq-2005002.html b/docs/apig/umn/apig-faq-2005002.html index 4d3d8ee6..e9845f0f 100644 --- a/docs/apig/umn/apig-faq-2005002.html +++ b/docs/apig/umn/apig-faq-2005002.html @@ -1,7 +1,8 @@How Do I Specify the Host Port for a VPC Channel (or Load Balance Channel)?
-Use the port of the API backend service.
+Use the port of the API backend service.
+For details about how to configure the API backend, see section "Creating an API" in the API Gateway User Guide.
diff --git a/docs/apig/umn/apig-faq-2005003.html b/docs/apig/umn/apig-faq-2005003.html index 893a9c94..11f52d65 100644 --- a/docs/apig/umn/apig-faq-2005003.html +++ b/docs/apig/umn/apig-faq-2005003.html @@ -1,7 +1,7 @@Can I Specify a Private Network Load Balancer Address for the Backend Service?
-+
- For dedicated gateways, you can use private network load balancer addresses.
- Alternatively, you can use the EIP bound to a public network load balancer.
- For dedicated gateways, you can use private network load balancer addresses.
- Alternatively, you can use the EIP bound to a public network load balancer.
diff --git a/docs/apig/umn/apig-faq-2005004.html b/docs/apig/umn/apig-faq-2005004.html index 6af7f168..6d4d860f 100644 --- a/docs/apig/umn/apig-faq-2005004.html +++ b/docs/apig/umn/apig-faq-2005004.html @@ -1,7 +1,8 @@How Do I Set the Backend Address If I Will Not Use a VPC Channel (or Load Balance Channel)?
-You can specify the backend address as a public domain name or a public IP address, such as the Elastic IP (EIP) of an Elastic Cloud Server (ECS).
+Specify the backend address as a public domain name or a public IP address, such as the Elastic IP (EIP) of an Elastic Cloud Server (ECS). To do this, enable public outbound access for the gateway.
+Use a private network IP address, not a private network domain name.
diff --git a/docs/apig/umn/apig-faq-2005006.html b/docs/apig/umn/apig-faq-2005006.html index 3da51d1f..d4ef5768 100644 --- a/docs/apig/umn/apig-faq-2005006.html +++ b/docs/apig/umn/apig-faq-2005006.html @@ -1,9 +1,9 @@Can I Specify the Backend Address as a Subnet IP Address?
-If you use a dedicated gateway, you can specify either an IP address that belongs to the same subnet where the gateway is deployed, or the private address of a local data center connected to the gateway through Direct Connect.
-Unsupported network segments:
-+
- 0.0.0.0/8
- 10.0.0.0/8
- 100.125.0.0/16
- 127.0.0.0/8
- 169.254.0.0/16
- 172.16.0.0/12
- 192.0.0.0/24
- 192.0.2.0/24
- 192.88.99.0/24
- 192.168.0.0/16
- 198.18.0.0/15
- 198.51.100.0/24
- 203.0.113.0/24
- 224.0.0.0/4
- 240.0.0.0/4
- 255.255.255.255/32
If you use a dedicated gateway, you can specify either an IP address that belongs to the same subnet where the gateway is deployed, or the private address of a local data center connected to the gateway through Direct Connect.
+Unsupported network segments:
+
- 0.0.0.0/8
- 10.0.0.0/8
- 100.125.0.0/16
- 127.0.0.0/8
- 169.254.0.0/16
- 172.16.0.0/12
- 192.0.0.0/24
- 192.0.2.0/24
- 192.88.99.0/24
- 192.168.0.0/16
- 198.18.0.0/15
- 198.51.100.0/24
- 203.0.113.0/24
- 224.0.0.0/4
- 240.0.0.0/4
- 255.255.255.255/32
diff --git a/docs/apig/umn/apig-faq-2005007.html b/docs/apig/umn/apig-faq-2005007.html deleted file mode 100644 index ff8fcd1d..00000000 --- a/docs/apig/umn/apig-faq-2005007.html +++ /dev/null @@ -1,11 +0,0 @@ - - -Why Can't I Create APIs?
--The creation of APIs is free of charge. If you cannot create APIs, your account must be in arrears.
--- diff --git a/docs/apig/umn/apig-faq-2005008.html b/docs/apig/umn/apig-faq-2005008.html index 31c24723..8ee6676e 100644 --- a/docs/apig/umn/apig-faq-2005008.html +++ b/docs/apig/umn/apig-faq-2005008.html @@ -1,8 +1,8 @@--Parent topic: API Creation-How Do I Provide an Open API to Specific Users?
-You can provide an open API to specific users in either of the following ways:
-+
- Select app authentication when you create the API, and share the AppKey and AppSecret with the target users.
- Configure an access control policy to allow access from specific IP addresses or account names, and bind the access control policy to the API.
You can provide an open API to specific users in either of the following ways:
+
- Select app authentication when you create the API, and share the AppKey and AppSecret with the target users.
- Configure an access control policy to allow access from specific IP addresses or account names, and bind the access control policy to the API.
diff --git a/docs/apig/umn/apig-faq-2005009.html b/docs/apig/umn/apig-faq-2005009.html index 5adb9c71..357830b1 100644 --- a/docs/apig/umn/apig-faq-2005009.html +++ b/docs/apig/umn/apig-faq-2005009.html @@ -1,9 +1,9 @@What Should I Do After Applying for an Independent Domain Name?
-If you are using a dedicated gateway, add an A record that points the independent domain name to the inbound access address of the gateway. You can bind five independent domain names to an API group but can bind each independent domain name only to one API group.
-![]()
To use a public domain name, add an A record (dedicated gateway) in Domain Name Service (DNS).
-To use a private domain name, add an A record (dedicated gateway) in the DNS service and associate the domain name with the VPC in which your backend service is located.
+If you are using a dedicated gateway, add an A record that points the independent domain name to the inbound access address of the gateway. You can bind five independent domain names to an API group but can bind each independent domain name only to one API group.
+![]()
To use a public domain name, add an A record (dedicated gateway) in Domain Name Service (DNS).
+To use a private domain name, add an A record (dedicated gateway) in the DNS service and associate the domain name with the VPC in which your backend service is located.
diff --git a/docs/apig/umn/apig-faq-2005010.html b/docs/apig/umn/apig-faq-2005010.html index cb1f5e1f..0ca374d5 100644 --- a/docs/apig/umn/apig-faq-2005010.html +++ b/docs/apig/umn/apig-faq-2005010.html @@ -1,23 +1,25 @@What Are the Possible Causes for an API Calling Failure?
-Network
API calling failures may occur in three scenarios: within a VPC, between VPCs, and on a public network.
+-Network
API calling failures may occur in three scenarios: within a VPC, between VPCs, and on a public network.
- Within a VPC: Check whether the domain name is the same as that automatically allocated for the API.
- Between VPCs: Check whether the two VPCs are connected. If they are not connected, create a VPC peering connection to connect the two VPCs.
For details about how to create and use VPC peering connections, see section "VPC Peering Connection" in the Virtual Private Cloud User Guide.
-- On a public network:
+
- The API is not bound with an EIP and does not have a valid address for public network access.
- The inbound rules are incorrectly configured.
- The request header "host:Group domain name" is not added when you call the API. Add the request header and try again.
-
- Within a VPC: Check whether the domain name is the same as that automatically allocated for the API.
- Between VPCs: Check whether the two VPCs are connected. If they are not connected, create a VPC peering connection to connect the two VPCs.
For details about how to create and use VPC peering connections, see section "VPC Peering Connection" in the Virtual Private Cloud User Guide.
+- On a public network:
- The API is not bound with an EIP and does not have a valid address for public network access.
Bind an EIP to the API and try again. For details, see section "Creating a Gateway" in the API Gateway User Guide.
+- The inbound rules are incorrectly configured.
For details about how to configure inbound rules, see section "Creating a Gateway" in the API Gateway User Guide.
+- The request header "host:Group domain name" is not added when you call the API. Add the request header and try again.
Domain Name
+
- Check whether the domain name bound to the API group to which the API belongs has been successfully licensed and can be resolved.
- Check whether the domain name has been bound to the correct API group.
- The subdomain name automatically allocated to the API group is accessed too many times. The subdomain name can be accessed only 1000 times a day. It is unique and cannot be modified. Add independent domain names for the group to make the APIs in the group accessible.
-Domain Name
- Check whether the domain name bound to the API group to which the API belongs has been successfully licensed and can be resolved.
- Check whether the domain name has been bound to the correct API group.
- The subdomain name (debugging domain name) automatically allocated to the API group is accessed too many times. The subdomain name can be accessed only 1000 times a day. It is unique and cannot be modified. Add independent domain names for the group to make the APIs in the group accessible.
API Publishing
Check whether the API has been published. If the API has been modified, publish it again. If the API has been published to a non-RELEASE environment, specify the X-Stage header as the environment name.
+-API Publishing
Check whether the API has been published. If the API has been modified, publish it again. If the API has been published to a non-RELEASE environment, specify the X-Stage header as the environment name.
API Authentication
If the API uses app authentication, check whether the AppKey and AppSecret used to call the API are correct.
+-API Authentication
If the API uses app authentication, check whether the AppKey and AppSecret used to call the API are correct.
API Control Policies
+
- Check whether the access control policy bound to the API is correct.
- Check whether the request throttling limit of the API has been reached. If no request throttling policy is created for an API, the API can be accessed 200 times per second by default. To change this limit, go to the Gateway Information page, click the Configuration Parameters tab, and modify the ratelimit_api_limits parameter.
API Control Policies
- Check whether the access control policy bound to the API is correct.
- Check whether the request throttling limit of the API has been reached. If no request throttling policy is created for an API, the API can be accessed 200 times per second by default. To change this limit of dedicated gateways, go to the Gateway Information page, click the Parameters tab, and modify the ratelimit_api_limits parameter.
diff --git a/docs/apig/umn/apig-faq-2005011.html b/docs/apig/umn/apig-faq-2005011.html index 334e37f6..c5f73a64 100644 --- a/docs/apig/umn/apig-faq-2005011.html +++ b/docs/apig/umn/apig-faq-2005011.html @@ -1,11 +1,12 @@-Parent topic: API Calling+Parent topic: API CallingHow Do I Switch the Environment for API Calling?
-By default, the API in the RELEASE environment is called. If you want to call the same API in another environment, add the request header X-Stage to specify the environment name.
+By default, the API in the RELEASE environment is called.
+If you want to call the same API in another environment, add the request header X-Stage to specify the environment name.
diff --git a/docs/apig/umn/apig-faq-2005012.html b/docs/apig/umn/apig-faq-2005012.html index fc8c5236..b87acac4 100644 --- a/docs/apig/umn/apig-faq-2005012.html +++ b/docs/apig/umn/apig-faq-2005012.html @@ -1,12 +1,12 @@-Parent topic: API Calling+Parent topic: API CallingWhat Should I Do If an Error Code Is Returned During API Calling?
-If an error code is returned when you call your own APIs, see
- .If an error code is returned when you manage your APIs, see
+ .If an error code is returned when you call your own APIs, see Error Codes.
+If an error code is returned when you manage your APIs,see section "Error Codes" in the API Gateway API Reference.
diff --git a/docs/apig/umn/apig-faq-2005013.html b/docs/apig/umn/apig-faq-2005013.html index fca5255b..e4555ca1 100644 --- a/docs/apig/umn/apig-faq-2005013.html +++ b/docs/apig/umn/apig-faq-2005013.html @@ -1,8 +1,8 @@-Parent topic: API Calling+Parent topic: API CallingDoes APIG Support HTTPS Two-Way Authentication?
-Dedicated gateway: Yes.
-+
- Backend two-way authentication: When creating an API, enable two-way authentication for the backend service. For details, see the description about Two-way Authentication in Creating an API.
Dedicated gateway: Yes.
+
- Frontend two-way authentication: When binding an independent domain name, select an SSL certificate that contains a CA certificate. Client authentication, that is, two-way authentication, can be enabled.
- Backend two-way authentication: When creating an API, enable two-way authentication for the backend service. For details, see the description about Two-Way Authentication in Creating an API.
diff --git a/docs/apig/umn/apig-faq-2005015.html b/docs/apig/umn/apig-faq-2005015.html index 3733a7f8..c19e136e 100644 --- a/docs/apig/umn/apig-faq-2005015.html +++ b/docs/apig/umn/apig-faq-2005015.html @@ -1,7 +1,8 @@Which TLS Versions Does APIG Support?
-APIG supports TLS 1.1 and TLS 1.2, but does not support TLS 1.0 or TLS 1.3.
+APIG supports TLS 1.1 and TLS 1.2, but does not support TLS 1.0 or TLS 1.3.
+For details, see section "Binding a Domain Name" in the API Gateway User Guide.
diff --git a/docs/apig/umn/apig-faq-2005016.html b/docs/apig/umn/apig-faq-2005016.html index 444ae7e9..e4817a77 100644 --- a/docs/apig/umn/apig-faq-2005016.html +++ b/docs/apig/umn/apig-faq-2005016.html @@ -1,7 +1,8 @@Does APIG Support Custom Authentication?
-Yes. For details, see "Custom Authorizers" in the User Guide.
+Yes.
+For details, see section "Custom Authorizers" in the API Gateway User Guide.
diff --git a/docs/apig/umn/apig-faq-2005018.html b/docs/apig/umn/apig-faq-2005018.html index ee08877c..402ac0a0 100644 --- a/docs/apig/umn/apig-faq-2005018.html +++ b/docs/apig/umn/apig-faq-2005018.html @@ -1,8 +1,8 @@Will the Request Body Be Signed for Security Authentication?
-Yes. The request body is another element that needs to be signed in addition to the mandatory request header parameters. For example, when an API used to upload a file using the POST method is called, the hash value of the file to upload is calculated to generate a signature.
-For details about signatures, see section "App Authentication" in the API Gateway Developer Guide.
+Yes. The request body is another element that needs to be signed in addition to the mandatory request header parameters. For example, when an API used to upload a file using the POST method is called, the hash value of the file to upload is calculated to generate a signature.
+For details about signatures, see section "App Authentication" in the API Gateway Developer Guide.
diff --git a/docs/apig/umn/apig-faq-2005020.html b/docs/apig/umn/apig-faq-2005020.html index 3e0bd067..679a997a 100644 --- a/docs/apig/umn/apig-faq-2005020.html +++ b/docs/apig/umn/apig-faq-2005020.html @@ -1,8 +1,8 @@How Do I Call an API That Does Not Require Authentication?
-To call APIs that do not require authentication, construct standard HTTP requests and send them to APIG.
-![]()
APIG transparently transmits requests to call an API that does not require authentication to the backend service. If you want requests to be authenticated on the API backend service, you can set Security Authentication to None. The API caller transfers the fields required for authentication to the backend service, and the backend service performs authentication.
+To call APIs that do not require authentication, construct standard HTTP requests and send them to APIG.
+![]()
APIG transparently transmits requests to call an API that does not require authentication to the backend service. If you want requests to be authenticated on the API backend service, you can set Security Authentication to None. The API caller transfers the fields required for authentication to the backend service, and the backend service performs authentication.
diff --git a/docs/apig/umn/apig-faq-2005021.html b/docs/apig/umn/apig-faq-2005021.html index ebfb213e..06586f5d 100644 --- a/docs/apig/umn/apig-faq-2005021.html +++ b/docs/apig/umn/apig-faq-2005021.html @@ -1,7 +1,7 @@Can I Bind Private Domain Names for API Access?
-In a dedicated gateway, you can add a private domain name, and add an A record to point the domain name to the inbound access address of the gateway.
+In a dedicated gateway, you can add a private domain name (filing not required), and add an A record to point the domain name to the inbound access address of the gateway.
diff --git a/docs/apig/umn/apig-faq-2005022.html b/docs/apig/umn/apig-faq-2005022.html index 5a835fd5..85ab9683 100644 --- a/docs/apig/umn/apig-faq-2005022.html +++ b/docs/apig/umn/apig-faq-2005022.html @@ -1,11 +1,12 @@ -Why Am I Seeing the Error Message "414 Request-URI Too Large" When I Call an API?
-The request URL (including request parameters) is too long. Place the request parameters in the request body and try again.
+Why Am I Seeing the Error Message "414 Request URI too large" When I Call an API?
+The request URL (including request parameters) is too long. Place the request parameters in the request body and try again.
+For details about API calling errors, see section "Error Codes" in the API Gateway User Guide.
diff --git a/docs/apig/umn/apig-faq-2005023.html b/docs/apig/umn/apig-faq-2005023.html index e128b660..1170fb80 100644 --- a/docs/apig/umn/apig-faq-2005023.html +++ b/docs/apig/umn/apig-faq-2005023.html @@ -1,8 +1,8 @@-Parent topic: API Calling+Parent topic: API CallingHow Do I Exclude a Specific IP Address for Identity Authentication of an API?
-You can choose either of the following solutions:
-+
- Solution 1: Create an API that does not require authentication, and configure an access control policy to whitelist the IP address.
- Solution 2: Create two APIs, one that uses IAM or app authentication and one that does not require authentication, and configure an access control policy to whitelist the IP address for the API that does not require authentication.
You can choose either of the following solutions:
+
- Solution 1: Create an API that does not require authentication, and configure an access control policy to whitelist the IP address.
- Solution 2: Create two APIs, one that uses IAM or app authentication and one that does not require authentication, and configure an access control policy to whitelist the IP address for the API that does not require authentication.
diff --git a/docs/apig/umn/apig-faq-2005024.html b/docs/apig/umn/apig-faq-2005024.html index 879bf289..b0443482 100644 --- a/docs/apig/umn/apig-faq-2005024.html +++ b/docs/apig/umn/apig-faq-2005024.html @@ -1,11 +1,11 @@Why Does API Import Fail?
-Possible cause 1: The number of APIs exceeds the maximum allowed limit for a single import. For more APIs (300), import them in batches or submit a service ticket to increase the limit.
-Possible cause 2: Parameters are incorrect. Check and rectify the parameters. You are advised to create an API on the APIG console, export it, and then use it as a template for importing APIs.
-Possible cause 3: The YAML file is in incorrect format. Check and modify the file.
-Possible cause 4: The local proxy network has restrictions. Change the network environment.
-Possible cause 5: The header of the API request contains X-Auth-Token. Remove X-Auth-Token from the header.
+Possible cause 1: The number of APIs exceeds the maximum allowed limit for a single import. For more APIs (300), import them in batches or submit a service ticket to increase the limit.
+Possible cause 2: Parameters are incorrect. Check and rectify the parameters. You are advised to create an API on the APIG console, export it, and then use it as a template for importing APIs.
+Possible cause 3: The YAML file is in incorrect format. Check and modify the file.
+Possible cause 4: The local proxy network has restrictions. Change the network environment.
+Possible cause 5: The header of the API request contains X-Auth-Token. Remove X-Auth-Token from the header.
diff --git a/docs/apig/umn/apig-faq-2005025.html b/docs/apig/umn/apig-faq-2005025.html index 4dbaa7bc..16bbe208 100644 --- a/docs/apig/umn/apig-faq-2005025.html +++ b/docs/apig/umn/apig-faq-2005025.html @@ -1,8 +1,8 @@Does APIG Provide a Template for Importing APIs from Swagger Files?
-The template is being developed.
-Currently, you can configure one or two APIs in APIG, and then export them to use as templates.
+The template is being developed.
+Currently, you can configure one or two APIs in APIG, and then export them to use as templates.
diff --git a/docs/apig/umn/apig-faq-2005026.html b/docs/apig/umn/apig-faq-2005026.html index 93c82e58..c0d3d9a1 100644 --- a/docs/apig/umn/apig-faq-2005026.html +++ b/docs/apig/umn/apig-faq-2005026.html @@ -1,7 +1,8 @@Can I Configure the Maximum Number of Concurrent Requests?
-No, but you can limit the maximum number of API calls allowed within a specific period of time.
+No,
+but you can limit the maximum number of API calls allowed within a specific period of time.
diff --git a/docs/apig/umn/apig-faq-2005027.html b/docs/apig/umn/apig-faq-2005027.html index 5e0aa5c3..f68aa8e8 100644 --- a/docs/apig/umn/apig-faq-2005027.html +++ b/docs/apig/umn/apig-faq-2005027.html @@ -1,11 +1,12 @@ -How Do I Specify an Environment for API Debugging?
-APIG debugs APIs in a specific debugging environment. After debugging is completed, you need to publish your API in an environment, and use code or postman to add the X-Stage header to specify the environment where you want to call the API.
+Can I Specify an Environment for API Debugging?
+No.
+APIG debugs APIs in a specific debugging environment. After debugging is completed, you need to publish your API in an environment, and use code or Postman to add the X-Stage header to specify the environment where you want to call the API.
diff --git a/docs/apig/umn/apig-faq-2005032.html b/docs/apig/umn/apig-faq-2005032.html index 387baa00..9d451d61 100644 --- a/docs/apig/umn/apig-faq-2005032.html +++ b/docs/apig/umn/apig-faq-2005032.html @@ -1,15 +1,15 @@-Parent topic: API Publishing+Parent topic: API PublishingRequest Throttling
-+
- Can I Configure the Maximum Number of Concurrent Requests?
-
- Is the Restriction of 1000 Requests to a Subdomain Name Applied to Enterprise Accounts?
+- Is the Restriction of 1000 Requests per Day to a Subdomain Name (Debugging Domain Name) Applied to Enterprise Accounts?
-
- Does APIG Has Bandwidth Limits?
+- Does APIG Have Bandwidth Limits?
- Why Doesn't a Request Throttling Policy Take Effect?
diff --git a/docs/apig/umn/apig-faq-2005033.html b/docs/apig/umn/apig-faq-2005033.html index 458680ee..2e03561c 100644 --- a/docs/apig/umn/apig-faq-2005033.html +++ b/docs/apig/umn/apig-faq-2005033.html @@ -1,13 +1,15 @@
Access Control
- +
- How Do I Provide an Open API to Specific Users?
- How Do I Exclude a Specific IP Address for Identity Authentication of an API?
+
- Are Client IP Addresses Verified for Access Control?
+diff --git a/docs/apig/umn/apig-faq-2005035.html b/docs/apig/umn/apig-faq-2005035.html index 1af69952..838e6318 100644 --- a/docs/apig/umn/apig-faq-2005035.html +++ b/docs/apig/umn/apig-faq-2005035.html @@ -1,8 +1,7 @@API Import and Export
--+diff --git a/docs/apig/umn/apig-faq-20210414.html b/docs/apig/umn/apig-faq-20210414.html deleted file mode 100644 index 855e7568..00000000 --- a/docs/apig/umn/apig-faq-20210414.html +++ /dev/null @@ -1,11 +0,0 @@ - - -
- Why Does API Import Fail?
@@ -12,7 +11,7 @@Can APIG Be Deployed in a Local Data Center?
--No. APIG cannot be deployed in a local data center.
--- diff --git a/docs/apig/umn/apig-faq-auth.html b/docs/apig/umn/apig-faq-auth.html index 62fd2461..980d7dcd 100644 --- a/docs/apig/umn/apig-faq-auth.html +++ b/docs/apig/umn/apig-faq-auth.html @@ -1,7 +1,7 @@--Parent topic: Other FAQs-API Authentication
- +diff --git a/docs/apig/umn/apig-faq-create.html b/docs/apig/umn/apig-faq-create.html index 93319640..7d940cf7 100644 --- a/docs/apig/umn/apig-faq-create.html +++ b/docs/apig/umn/apig-faq-create.html @@ -1,11 +1,9 @@API Creation
- +diff --git a/docs/apig/umn/apig-lgug-200226001.html b/docs/apig/umn/apig-lgug-200226001.html deleted file mode 100644 index 651c62f7..00000000 --- a/docs/apig/umn/apig-lgug-200226001.html +++ /dev/null @@ -1,199 +0,0 @@ - - --
- Why Can't I Create APIs?
-- How Do I Define Response Codes for an API?
- How Do I Specify the Host Port for a VPC Channel (or Load Balance Channel)?
@@ -18,7 +16,7 @@- Can I Specify the Backend Address as a Subnet IP Address?
-
- Does APIG Support Multiple Backend Endpoints?
+- Does APIG Support Multiple Backend Endpoints?
- What Should I Do After Applying for an Independent Domain Name?
@@ -29,7 +27,7 @@
Adding a Gateway Response
---Scenario
A gateway response is displayed if APIG fails to process an API request. APIG provides a set of default responses and also allows you to create gateway responses with custom status codes and content, on the API Groups page. The response content must be in JSON format.
-For example, the content of a default gateway response is as follows:
-{"error_code": "$context.error.code", "error_msg": "$context.error.message", "request_id": "$context.requestId"}-You can add a response with the following content:
-{"errorcode": "$context.error.code", "errormsg": "$context.error.message", "requestid": "$context.requestId","apiId":"$context.apiId"}-You can add more fields to or delete existing fields from the JSON body.
--![]()
-
- The default gateway responses provided by APIG can be edited.
- You can create gateway responses and configure different responses for APIs in the same API group.
- The type of a gateway response cannot be changed. For details, see Response Types.
- Gateway responses can contain the API gateway context variables (starting with $context). For details, see APIG Context Variables.
-Prerequisites
You have created an API group.
--Procedure
-
- Log in to the management console.
- In the navigation pane, choose Dedicated Gateways. Then click Access Console in the upper right corner of a dedicated gateway.
- In the navigation pane, choose API Publishing > API Groups.
- Locate the API group for which you want to create or modify a gateway response, and click the group name to go to the API group details page.
- Click the Gateway Responses tab and create a gateway response. -
-![]()
-
- To edit a response, click the Edit button in the upper right corner and modify the status code and content of the response.
- You can modify only the status code and content of a default or custom gateway response, and you cannot change the response type.
- Error information and other response details can be obtained using variables. For details about the supported variables, see Table 2.
-Response Types
Table 1 lists the response types supported by APIG. You can define status codes of responses to meet your service requirements.
- ---
Table 1 Error Response types supported by APIG - - - Response Name
-- Default Status Code
-- Description
-- - Access Denied
-- 403
-- Access denied. For example, the access control policy is triggered or an attack is detected.
-- - Authorizer Configuration Error
-- 500
-- A custom authorizer error has occurred. For example, communication failed or an error response was returned.
-- - Authorizer Failed
-- 500
-- The custom authorization failed.
-- - Incorrect Identity Source
-- 401
-- The identity source of the custom authorizer is missing or invalid.
-- - Authentication Failure
-- 401
-- IAM or app authentication failed.
-- - Identity Source Not Found
-- 401
-- No identity source has been specified.
-- - Backend Timeout
-- 504
-- Communication with the backend service timed out.
-- - Backend Unavailable
-- 502
-- The backend service is unavailable due to communication error.
-- - Default 4XX
-- -
-- Another 4XX error occurred.
-- - Default 5XX
-- -
-- Another 5XX error occurred.
-- - No API Found
-- 404
-- No API is found.
-- - Incorrect Request Parameters
-- 400
-- The request parameters are incorrect or the HTTP method is not supported.
-- - Request Throttled
-- 429
-- The request was rejected due to request throttling.
-- - - Unauthorized App
-- 401
-- The app you are using has not been authorized to call the API.
--APIG Context Variables
---
Table 2 Variables that can be used in response message body - - - Variable
-- Description
-- - $context.apiId
-- API ID.
-- - $context.appId
-- ID of the app that calls the API.
-- - $context.requestId
-- Request ID generated when the API is called.
-- - $context.stage
-- Deployment environment in which the API is called.
-- - $context.sourceIp
-- Source IP address of the API caller.
-- - $context.authorizer.frontend.property
-- Values of the specified attribute–value pairs mapped to the context in the frontend custom authorizer response
-- - $context.authorizer.backend.property
-- Values of the specified attribute–value pairs mapped to the context in the backend custom authorizer response
-- - $context.error.message
-- Error message.
-- - $context.error.code
-- Error code.
-- - - $context.error.type
-- Error type.
--- diff --git a/docs/apig/umn/apig-lgug-200227001.html b/docs/apig/umn/apig-lgug-200227001.html deleted file mode 100644 index 0cf253d6..00000000 --- a/docs/apig/umn/apig-lgug-200227001.html +++ /dev/null @@ -1,27 +0,0 @@ - - ---Parent topic: API Group Management-Adding an AppCode for Simple Authentication
---Scenario
AppCodes are identity credentials of an app used to call APIs in simple authentication mode. In this mode, the X-Apig-AppCode parameter (whose value is an AppCode on the app details page) is added to the HTTP request header for quick response. APIG verifies only the AppCode and the request content does not need to be signed.
-When an API is called using app authentication and simple authentication is enabled for the API, AppKey and AppSecret can be used to sign and verify the API request. AppCode can also be used for simple authentication.
--![]()
-
- For security purposes, simple authentication only supports API calls over HTTPS.
- You can create a maximum of five AppCodes for each app.
-Prerequisites
You have created an app.
--Generating an AppCode
-
- Log in to the management console.
- In the navigation pane, choose Dedicated Gateways. Then click Access Console in the upper right corner of a dedicated gateway.
- In the navigation pane, choose API Calling > Apps.
- Click the name of the target app.
- Click the AppCodes tab.
- Click Add AppCode to generate an AppCode. It can be automatically generated or customized. -
-Using AppCode for Simple Authentication of API Requests
-
- When creating an API, set Security Authentication to App and enable Simple Authentication.
-![]()
After you enable simple authentication for an existing API, you need to publish the API again to make the configuration take effect.
-- Bind an app to the API. -
- When sending a request, add the X-Apig-AppCode parameter to the request header and omit the request signature.
For example, when using curl, add the X-Apig-AppCode parameter to the request header and set the parameter value to the generated AppCode.
-curl -X GET "https://api.exampledemo.com/testapi" -H "content-type: application/json" -H "host: api.exampledemo.com" -H "X-Apig-AppCode: xhrJVJKABSOxc7d***********FZL4gSHEXkCMQC"--- diff --git a/docs/apig/umn/apig-pd-180307002.html b/docs/apig/umn/apig-pd-180307002.html new file mode 100644 index 00000000..e9a012cc --- /dev/null +++ b/docs/apig/umn/apig-pd-180307002.html @@ -0,0 +1,26 @@ + + +--Parent topic: App Management-Product Advantages
+++Available Out-of-the-Box
You can quickly create APIs by configuring the required settings on the APIG console. APIG provides an inline debugging tool to simplify API development, and allows you to publish an API in multiple environments for easy testing and fast iteration.
++Convenient API Lifecycle Management
APIG provides full-lifecycle API management, including design, development, test, publish, and O&M, to help you quickly build, manage, and deploy APIs at any scale.
++Refined Request Throttling
APIG combines synchronous and asynchronous traffic control and multiple algorithms to throttle requests at the second level. You can flexibly define request throttling policies to ensure stability and continuity of API services.
++Function Invocation
APIG seamlessly works with FunctionGraph, enabling you to selectively expose FunctionGraph functions in the form of APIs.
++Visualized API Monitoring
APIG monitors the number of API calls, data latency, and number of errors, helping you identify potential service risks.
++Comprehensive Security Protection
APIG provides multiple measures to secure API calling, such as Secure Sockets Layer (SSL) transfer, strict access control, IP address blacklist/whitelist, authentication, anti-replay, anti-attack, and multiple audit rules. In addition, APIG implements flexible and refined quota management and request throttling to help you flexibly and securely open your backend services.
++Flexible Policy Routes
You can configure backends for an API to forward requests according to multiple policies. This facilitates dark launch and environment management.
++SDKs of Different Programming Languages
SDKs of different programming languages (such as Java, Go, Python, and C) are available for access from clients. Because the backends do not need to be modified, only one system is required to adapt to different service scenarios (such as mobile devices and IoT).
+++ diff --git a/docs/apig/umn/apig-pd-180307003.html b/docs/apig/umn/apig-pd-180307003.html new file mode 100644 index 00000000..09739a02 --- /dev/null +++ b/docs/apig/umn/apig-pd-180307003.html @@ -0,0 +1,19 @@ + + +++Parent topic: Service Overview+Application Scenarios
+++Internal System Decoupling
As enterprises develop rapidly with quick business changes, internal systems of enterprises need to keep pace with the development. However, it is difficult to ensure system universality and stability because internal systems are dependent on each other. APIG uses standard RESTful APIs to simplify the service architecture, decouples internal systems, and separates the frontend from backend. Existing capabilities can be reused to avoid repetitive development.
++
+Enterprise Capabilities Opening
An enterprise cannot develop without partners' capabilities, such as a third-party payment platform and partner account login. APIG enables you to selectively expose capabilities to partners by using standard APIs and share services and data with partners to build a new ecosystem.
++
+FunctionGraph Services Opening
APIG can also help you selectively expose serverless services (FunctionGraph services) to partners. FunctionGraph services are easier to develop, deploy, and maintain than traditional services. You can use FunctionGraph to quickly build backend service logic, and use APIG to expose service logic functions for linear concurrency expansion.
++
++ diff --git a/docs/apig/umn/apig-pd-180307004.html b/docs/apig/umn/apig-pd-180307004.html new file mode 100644 index 00000000..fb6eea9e --- /dev/null +++ b/docs/apig/umn/apig-pd-180307004.html @@ -0,0 +1,40 @@ + + +++Parent topic: Service Overview+Basic Concepts
+++API
A set of predefined functions that encapsulates application capabilities. You can create APIs and make them accessible to users.
+When creating an API, you need to configure the basic information and the frontend and backend request paths, parameters, and protocols.
++API Group
A collection of APIs used for the same service. API groups facilitate API management.
++Environment
A stage in the lifecycle of an API. An environment, such as API testing or development environment, specifies the usage scope of APIs, facilitating API lifecycle management. The same API can be published in different environments.
+To call an API in different environments, you need to add the x-stage header parameter to the request sent to call the API. The value of this parameter is an environment name.
++Environment Variable
A variable that is manageable and specific to an environment. You can create variables in different environments to call different backend services using the same API.
++Request Throttling
Controls the number of times APIs can be called by a user, app (credential), or IP address during a specific period to protect backend services.
+Request throttling can be accurate to the minute and second.
++Access Control
Access control policies are one of the security measures provided by APIG. They allow or deny API access from specific IP addresses or accounts.
++App (Credential)
An entity that requests for APIs. An app can be authorized to access multiple APIs, and multiple apps can be authorized to access the same API.
++Signature Key
Consists of a key and secret, which are used by backend services to verify the identity of API Gateway and ensure secure access.
+When an API bound with a signature key is called, API Gateway adds signature information to the API requests. The backend service of the API signs the requests in the same way, and verifies the identity of API Gateway by checking whether the signature is consistent with that in the Authorization header sent by API Gateway.
++VPC Channel (Load Balance Channel)
A method for accessing VPC resources from API Gateway, allowing you to selectively expose backend services deployed in VPCs to third-party users.
++Custom Authentication
A mechanism defined with custom rules for API Gateway to verify the validity and integrity of requests initiated by API callers. The mechanism is also used for backend services to verify the requests forwarded by API Gateway.
+The following two types of custom authentication are provided:
++
- Frontend custom authentication: A custom authorizer is configured with a function to authenticate requests for an API.
- Backend custom authentication: A custom authorizer can be configured to authenticate requests for different backend services, eliminating the need to customize APIs for different authentication systems and simplifying API development. You only need to create a function-based custom authorizer in API Gateway to connect to the backend authentication system.
+Simple Authentication
Simple authentication facilitates quick response for API requests by adding the X-Apig-AppCode parameter (whose value is an AppCode) to the HTTP request header. API Gateway verifies only the AppCode and does not verify the request signature.
++Gateway Response
Gateway responses are returned if API Gateway fails to process API requests. API Gateway provides default responses for multiple scenarios and allows you to customize response status codes and content. You can add a gateway response in JSON format on the API Groups page.
+++ diff --git a/docs/apig/umn/apig-pd-180307005.html b/docs/apig/umn/apig-pd-180307005.html new file mode 100644 index 00000000..7ea2224a --- /dev/null +++ b/docs/apig/umn/apig-pd-180307005.html @@ -0,0 +1,203 @@ + + +++Parent topic: Service Overview+Notes and Constraints
+++Quota Limits
To change the default restrictions, contact technical support to increase the quota.
++ +![]()
+
- It takes 5 to 10 seconds for a new or modified APIG resource to take effect.
- The maximum quota may be slightly exceeded in case of high concurrency, but resource usage will not be affected.
++
Table 1 Dedicated API gateway quotas + + + Item
++ Default Restriction
++ Modifiable
++ + Gateways
++ 5
++ √
++ + API groups
++ 1500
++ √
++ + APIs
++ Number of APIs for each gateway edition:
++ +
- Basic: 250
- Professional: 800
- Enterprise: 2000
- Platinum: 8000
+ √
++ + APIs
++ 1000 for each group
++ x
++ + Backend policies
++ 5
++ √
++ + Apps (credentials)
++ 50. The app quota includes the apps you have created.
++ √
++ + Request throttling policies
++ +
- You can create a maximum of 300 request throttling policies for each gateway.
- The call limit for a single user cannot exceed that for the target API.
- The call limit for a single app (credential) cannot exceed that for a single user.
- The call limit for a single IP address cannot exceed that for the target API.
+ √
++ + Environments
++ 10
++ √
++ + Signature keys
++ 200
++ √
++ + Access control policies
++ 100
++ √
++ + VPC channels (load balance channels)
++ 200
++ √
++ + Variables
++ You can create a maximum of 50 variables for an API group in each environment.
++ √
++ + Independent domain names
++ A maximum of five independent domain names can be bound to an API group.
++ √
++ + ECSs
++ A maximum of 10 ECSs can be added to a VPC channel.
++ √
++ + Parameters
++ A maximum of 50 parameters can be created for an API.
++ √
++ + API publication records
++ A maximum of 10 publication records of an API can be retained for each environment.
++ √
++ + API access rate
++ Up to 6000 times per second
++ √
++ + Excluded applications (Credentials)
++ A maximum of 30 excluded apps can be added to a request throttling policy.
++ √
++ + Excluded tenants
++ A maximum of 30 excluded tenants can be added to a request throttling policy.
++ √
++ + Access to a subdomain name (debugging domain name)
++ A subdomain name can be accessed up to 1000 times a day.
++ x
++ + Maximum size of an API request package
++ 12 MB
++ √
++ + TLS protocol
++ TLS 1.1 and TLS 1.2 are supported. TLS 1.2 is recommended.
++ √
++ + Custom authorizers
++ 50
++ x
++ + Plug-ins
++ 500
++ √
++ + + HTTP protocol
++ When the HTTP protocol is used, the maximum size of URL+Header is 32 KB.
++ x
+++ diff --git a/docs/apig/umn/apig-pd-190529006.html b/docs/apig/umn/apig-pd-190529006.html index b564fe8a..910ad395 100644 --- a/docs/apig/umn/apig-pd-190529006.html +++ b/docs/apig/umn/apig-pd-190529006.html @@ -1,12 +1,12 @@++Parent topic: Service Overview+Permissions Management
-If you need to assign different permissions to employees in your enterprise to access your APIG resources, Identity and Access Management (IAM) is a good choice for fine-grained permissions management. IAM provides identity authentication, permissions management, and access control, helping you secure access to your resources.
+If you need to assign different permissions to personnel in your enterprise to access your APIG resources, Identity and Access Management (IAM) is a good choice for fine-grained permissions management. IAM provides identity authentication, permissions management, and access control, helping you securely access your resources.
With IAM, you can use your account to create IAM users for your employees, and assign permissions to the employees to control their access to specific resources.
If your account does not require individual IAM users for permissions management, skip this chapter.
APIG Permissions
By default, new IAM users do not have any permissions assigned. You need to add a user to one or more groups, and attach policies or roles to these groups. The user then inherits permissions from the groups to which the user belongs, and can perform specified operations on cloud services based on the permissions.
APIG is a project-level service deployed and accessed in specific physical regions. To assign APIG permissions to a user group, you need to specify region-specific projects for which the permissions will take effect. If you select All projects, the permissions will be granted for both the global service project and all region-specific projects. When accessing APIG, the users need to switch to a region where they have been authorized to use this service.
-You can grant permissions by using roles and policies.+
- Roles: A type of coarse-grained authorization mechanism that defines permissions related to user responsibilities. This mechanism provides only a limited number of service-level roles for authorization. When using roles to grant permissions, you need to also assign other dependent roles for permissions to take effect. However, roles are not an ideal choice for fine-grained authorization and secure access control.
- Policies: A type of fine-grained authorization mechanism that defines permissions required to perform operations on specific cloud resources under certain conditions. This mechanism allows for more flexible policy-based authorization and meets requirements for secure access control. For example, you can grant APIG users only the permissions for performing specific operations. Most policies define permissions based on APIs. For the API actions supported by APIG, see section "Permissions Policies and Supported Actions" in the API Reference.
You can grant permissions by using roles and policies.
- Roles: A type of coarse-grained authorization mechanism that defines permissions related to user responsibilities. This mechanism provides only a limited number of service-level roles for authorization. When using roles to grant permissions, you need to also assign other dependent roles for permissions to take effect. However, roles are not an ideal choice for fine-grained authorization and secure access control.
- Policies: A fine-grained authorization strategy that defines permissions required to perform operations on specific cloud resources under certain conditions. This mechanism allows for more flexible policy-based authorization and meets requirements for secure access control. For example, you can grant APIG users only the permissions for performing specific operations. Most policies define permissions based on APIs. For the API actions supported by APIG, see section "Permissions Policies and Supported Actions" in the API Reference
Table 1 lists all the system-defined roles and policies supported by APIG.
@@ -22,25 +22,25 @@- APIG Administrator
Administrator permissions for APIG. Users granted these permissions can use all functions of API gateways.
+Administrator permissions for APIG. Users with this permission can use all functions.
- System-defined role
None
+If a user needs to create, delete, or change resources of other services, the user must also be granted administrator permissions of the corresponding services in the same project.
- APIG FullAccess
Full permissions for APIG. Users granted these permissions can use all functions of dedicated gateways.
+Full permissions for APIG. Users granted these permissions can use all functions of gateways.
- System-defined policy
None
+None
- APIG ReadOnlyAccess
Read-only permissions for APIG. Users granted these permissions can only view dedicated gateways.
+Read-only permissions for APIG. Users granted these permissions can only view gateways.
@@ -76,12 +76,12 @@ ] } - System-defined policy
Related Documents
+
- Section "Service Overview" in the Identity and Access Management User Guide
- Section "Creating a User and Granting Permissions" in the API Gateway User Guide
Related Documents
- Section "Service Overview" in the Identity and Access Management User Guide
- Section "Creating a User and Granting Permissions" in the API Gateway User Guide
diff --git a/docs/apig/umn/apig-specifications.html b/docs/apig/umn/apig-specifications.html index ad2850b2..e97a60c2 100644 --- a/docs/apig/umn/apig-specifications.html +++ b/docs/apig/umn/apig-specifications.html @@ -1,9 +1,9 @@-Parent topic: Service Overview+Parent topic: Service OverviewSpecifications
-Dedicated Gateway Specifications
Table 1 lists the specifications of dedicated API gateways.
+Dedicated Gateway Specifications
The following table lists the specifications of dedicated gateways.
-
Table 1 Specifications of dedicated gateways Edition
+-
Table 1 Specifications of dedicated gateways Edition
@@ -32,14 +32,13 @@ Maximum Number of Requests per Second
![]()
+
- For dedicated gateways, you can adjust the maximum number of requests per second for each API.
- The specifications of dedicated gateways cannot be modified.
- The dedicated gateway specifications are obtained by testing in the following conditions:
-
- Protocol: HTTPS
- Connection type: long connection
- Concurrent requests: 100
- Authentication mode: none
- Size of returned data: 1 KB
- Bandwidth: 10 MB/s
![]()
- For dedicated gateways, you can adjust the maximum number of requests per second for each API.
- The specifications of dedicated gateways cannot be modified.
diff --git a/docs/apig/umn/apig-ug-0001.html b/docs/apig/umn/apig-ug-0001.html deleted file mode 100644 index 604949a6..00000000 --- a/docs/apig/umn/apig-ug-0001.html +++ /dev/null @@ -1,23 +0,0 @@ - - --Parent topic: Service Overview+Parent topic: Service OverviewPlug-ins
- --- diff --git a/docs/apig/umn/apig-ug-0002.html b/docs/apig/umn/apig-ug-0002.html deleted file mode 100644 index c708311c..00000000 --- a/docs/apig/umn/apig-ug-0002.html +++ /dev/null @@ -1,72 +0,0 @@ - - --
- -- Creating a Plug-in
-
-- CORS Plug-in
-
-- HTTP Response Header Management Plug-in
-
-- Request Throttling Plug-in
-
-- Deleting a Plug-in
-
---Parent topic: API Opening-CORS Plug-in
--For security purposes, the browser restricts cross-domain requests from being initiated from a page script. In this case, the page can access only the resources from the current domain. CORS allows the browser to send XMLHttpRequest to the server in a different domain. For more information, see CORS.
-The CORS plug-in provides the capabilities of specifying preflight request headers and response headers and automatically creating preflight request APIs for cross-origin API access.
--![]()
If your gateway does not support the CORS plug-in, contact customer service to upgrade the gateway.
--Usage Guidelines
-
- You have understood the Guidelines for Using Plug-ins.
- APIs with the same request path in an API group can only be bound with the same CORS plug-in.
- If you have enabled CORS for an API and have also bound the CORS plug-in to the API, the CORS plug-in will be used.
- You cannot bind the CORS plug-in to APIs with the same request path as another API that uses the OPTIONS method.
- When you bind a plug-in to an API, ensure that the request method of the API is included in allow_methods.
-Configuration Parameters
---
Table 1 Configuration parameters - - - Parameter
-- Description
-- - allowed origins
-- Access-Control-Allow-Origin response header, which specifies either a single origin, which tells browsers to allow that origin to access an API; or else — for requests without credentials — the "*" wildcard, to tell browsers to allow any origin to access the API. Separate multiple URIs using commas.
-- - allowed methods
-- Access-Control-Allow-Methods response header, which specifies the HTTP methods allowed when accessing the API. Separate multiple methods using commas.
-- - allowed headers
-- Access-Control-Allow-Headers response header, which specifies request headers that can be used when making an XMLHttpRequest. Separate multiple headers using commas.
-By default, simple request headers Accept, Accept-Language, Content-Language, and Content-Type (only if the value is application/x-www-form-urlencoded, multipart/form-data, or text/plain) are carried in requests. You do not need to configure these headers in this parameter.
-NOTE:--
- When you create a CORS plug-in, no allowed headers are configured by default, which means cross-domain requests cannot carry any custom headers.
- Setting Allowed Headers to an asterisk (*) means cross-domain requests can carry any custom headers.
- - exposed headers
-- Access-Control-Expose-Headers response header, which specifies which response headers can be contained in the response of XMLHttpRequest. Separate multiple headers using commas.
-By default, basic response headers Cache-Control, Content-Language, Content-Type, Expires, Last-Modified, and Pragma can be contained in the response. You do not need to configure these headers in this parameter.
-NOTE:--
- When you create a CORS plug-in, no exposed headers are configured by default, which means the JavaScript code of a browser cannot parse the headers in a cross-domain access response. However, the following basic response headers obtained using the getResponseHeader() method of the XMLHttpRequest object are excluded: Cache-Control, Content-Language, Content-Type, Expires, Last-Modified, and Pragma.
- Setting Exposed Headers to an asterisk (*) means the JavaScript code of a browser can parse all the headers in a cross-domain access response.
- - maximum age
-- Access-Control-Max-Age response header, which specifies for how many seconds the results of a preflight request can be cached. No more preflight requests will be sent within the specified period.
-- - - allowed credentials
-- Access-Control-Allow-Credentials response header, which specifies whether XMLHttpRequest requests can carry cookies.
--Example Script
{ - "allow_origin": "*", - "allow_methods": "GET,POST,PUT", - "allow_headers": "Content-Type,Accept,Accept-Ranges,Cache-Control", - "expose_headers": "X-Request-Id,X-Apig-Latency", - "max_age": 172800, - "allow_credentials": true -}--- diff --git a/docs/apig/umn/apig-ug-0003.html b/docs/apig/umn/apig-ug-0003.html deleted file mode 100644 index 5dac64c6..00000000 --- a/docs/apig/umn/apig-ug-0003.html +++ /dev/null @@ -1,17 +0,0 @@ - - ---Parent topic: Plug-ins-Deleting a Plug-in
---Scenario
You can delete plug-ins you no longer require. To delete a plug-in that has been bound to APIs, unbind the plug-in from the APIs and then delete it.
--Prerequisites
You have created a plug-in.
--Procedure
-
- Log in to the management console.
- In the navigation pane, choose Dedicated Gateways. Then click Access Console in the upper right corner of a dedicated gateway.
- In the navigation pane, choose API Publishing > Plug-ins.
- Click the name of the target plug-in to go to the plug-in details page.
-
- If the plug-in is not bound to any APIs, click Delete in the upper right corner.
- If the plug-in has been bound to APIs, unbind the plug-in from the APIs in the Bound APIs area, and then click Delete in the upper right corner.
- Click Yes.
-- diff --git a/docs/apig/umn/apig-ug-0004.html b/docs/apig/umn/apig-ug-0004.html deleted file mode 100644 index 0c30921b..00000000 --- a/docs/apig/umn/apig-ug-0004.html +++ /dev/null @@ -1,55 +0,0 @@ - - ---Parent topic: Plug-ins-Creating a Plug-in
--APIG provides flexible extension capabilities for APIs through plug-ins.
--![]()
Plug-in parameters will be stored as plaintext. To prevent information leakage, do not contain sensitive information in these parameters.
--Guidelines for Using Plug-ins
-
- An API can be bound with only one plug-in of the same type.
- Plug-ins are independent of APIs. A plug-in takes effect for an API only after they are bound to each other. When binding a plug-in to an API, you must specify an environment where the API has been published. The plug-in takes effect for the API only in the specified environment.
- After you bind a plug-in to an API, unbind the plug-in from the API, or update the plug-in, you do not need to publish the API again.
- Taking an API offline does not affect the plug-ins bound to it. The plug-ins are still bound to the API if the API is published again.
- Plug-ins that have been bound to APIs cannot be deleted.
- -Creating a Plug-in
-
- Log in to the management console.
- In the navigation pane, choose Dedicated Gateways. Then click Access Console in the upper right corner of a dedicated gateway.
- In the navigation pane, choose API Publishing > Plug-ins.
- Click Create Plug-in.
In the Create Plug-in dialog box, configure the plug-in information.
-----
Table 1 Plug-in configuration - - - Parameter
-- Description
-- - Plug-in Name
-- Name of the plug-in you want to create. It is recommended that you enter a name based on certain naming rules to facilitate identification and search.
-- - Plug-in Type
-- Type of the plug-in, which determines the extension capabilities of the plug-in.
--
- CORS: Specifies preflight request headers and response headers and automatically creates preflight request APIs for cross-origin API access.
- HTTP Response Headers: Enables you to customize HTTP response headers that will be displayed in an API response.
- Request throttling: Limits the number of times that an API can be called within a specific time period. Parameter-based, basic, and excluded throttling is supported.
- - Plug-in Content
-- Content of the plug-in, which can be configured in a form or using a script.
-The plug-in content varies depending on the plug-in type:
- -- - - Description
-- Description of the plug-in.
-- Click OK.
After creating the plug-in, bind it to the API for which the plug-in will take effect.
--- diff --git a/docs/apig/umn/apig-ug-0005.html b/docs/apig/umn/apig-ug-0005.html deleted file mode 100644 index 50a36bc6..00000000 --- a/docs/apig/umn/apig-ug-0005.html +++ /dev/null @@ -1,66 +0,0 @@ - - ---Parent topic: Plug-ins-HTTP Response Header Management Plug-in
--HTTP response headers are part of the response returned by APIG to a client that calls an API. You can customize HTTP response headers that will be contained in an API response.
--![]()
If your gateway does not support the HTTP response header management plug-in, contact customer service to upgrade the gateway.
--Usage Guidelines
You cannot modify the response headers, such as x-apig-* and x-request-id, added by APIG, or the headers configured for CORS.
--Configuration Parameters
---
Table 1 Configuration parameters - - - Parameter
-- Description
-- - Name
-- Response header name, which is case-insensitive and must be unique within a plug-in. You can add a maximum of 10 response headers.
-- - Value
-- Value of the response header. This parameter does not take effect and can be left blank if you set Action to Delete.
-- - - Action
-- Response header operation. You can override, append, delete, skip, or add the specified header.
-Override
--
- The value of this response header will override that of the same header that exists in an API response.
- If an API response contains multiple headers with the same name as the one you set here, only the value of the specified header will be returned.
- If an API response does not contain the specified header, the value you set here will be returned.
Append
--
- If an API response contains the specified header, the value you set here will be added, following the existing value. The two values will be separated with commas (,).
- If an API response contains multiple headers with the same name as the one you set here, values of these headers will be separated with commas (,) and followed by the value of the specified header.
- If an API response does not contain the specified header, the value you set here will be returned.
Delete
--
- If an API response contains the specified header, the header will be deleted.
- If an API response contains multiple headers with the same name as the one you set here, all these headers will be deleted.
Skip
--
- If an API response contains the specified header, the header will be skipped.
- If an API response contains multiple headers with the same name as the one you set here, values of all these headers will be returned without modification.
- If an API response does not contain the specified header, the value you set here will be returned.
Add
-The value of the specified header will be returned even if the header does not exist in an API response.
--Example Script
{ - "response_headers": [ - { - "name": "test", - "value": "test", - "action": "append" - }, - { - "name": "test1", - "value": "test1", - "action": "override" - } - ] -}--- diff --git a/docs/apig/umn/apig-ug-0006.html b/docs/apig/umn/apig-ug-0006.html deleted file mode 100644 index 7e83a8ce..00000000 --- a/docs/apig/umn/apig-ug-0006.html +++ /dev/null @@ -1,19 +0,0 @@ - - - ---Parent topic: Plug-ins-Gateway Management
- --- - - diff --git a/docs/apig/umn/apig-ug-0008.html b/docs/apig/umn/apig-ug-0008.html deleted file mode 100644 index d48a7900..00000000 --- a/docs/apig/umn/apig-ug-0008.html +++ /dev/null @@ -1,33 +0,0 @@ - - - -API Opening
- --- -- -- diff --git a/docs/apig/umn/apig-ug-0009.html b/docs/apig/umn/apig-ug-0009.html deleted file mode 100644 index adf81188..00000000 --- a/docs/apig/umn/apig-ug-0009.html +++ /dev/null @@ -1,19 +0,0 @@ - - - -API Calling
- --- --- diff --git a/docs/apig/umn/apig-ug-0010.html b/docs/apig/umn/apig-ug-0010.html deleted file mode 100644 index 76df3619..00000000 --- a/docs/apig/umn/apig-ug-0010.html +++ /dev/null @@ -1,20 +0,0 @@ - - --
-- App Management
-
-- Log Analysis
-
-- Calling Published APIs
-
-Calling Published APIs
----- diff --git a/docs/apig/umn/apig-ug-0011.html b/docs/apig/umn/apig-ug-0011.html deleted file mode 100644 index 22af7383..00000000 --- a/docs/apig/umn/apig-ug-0011.html +++ /dev/null @@ -1,99 +0,0 @@ - - --
- -- Calling APIs
-
-- Response Headers
-
-- Error Codes
-
---Parent topic: API Calling-Calling APIs
---Obtaining APIs and Documentation
Before calling APIs, obtain the request information from the API provider, including the access domain name, protocol, method, path, and request parameters.
-Obtain APIs: from your company or from a partner
-Obtain related documentation from the help center of the API provider's official website:
- -The authentication information to be obtained varies with the API authentication mode.
--
- App authentication:
-
- Signature authentication: Obtain the key and secret (or client AppKey and AppSecret) of the app authorized for the API from the API provider as well as the SDK for calling the API.
- Simple authentication: Obtain the AppCode of the app authorized for the API from the API provider.
- Other authentication modes: Obtain the key and secret (or client AppKey and AppSecret) of the app authorized for the API from the API provider.
- IAM authentication: The account credential (token or AK/SK obtained with the account and password) obtained on the cloud service platform is used for authentication. If the AK/SK is used for authentication, you also need to obtain the SDK from the API provider for calling the API.
- Custom authentication: Obtain the custom authentication information to be carried in the request parameters from the API provider.
- None: No authentication information is required.
-Calling an API
-![]()
This section describes only the configuration of the request path and authentication parameters. For other parameters, such as timeout and SSL, configure them as required. To avoid service loss due to incorrect parameters, configure them by referring to the industry standards.
--
- Set the request path.
-
--
- - - Scenario
-- Request Parameter Configuration
-- - Calling an API with a domain name
-- Call the API using the subdomain name allocated to the API group or a domain name bound to the group. No additional configuration is required.
-- - Calling an API in the DEFAULT group with an IP address
-- In the shared gateway, call an API in the DEFAULT group with an IP address. No additional configuration is required.
-- - - Calling an API in a non-DEFAULT group with an IP address
-- -
- To call APIs using an IP address, ensure that the app_route parameter has been set to on on the Configuration Parameters tab page of the dedicated gateway.
- To use an IP address to call an API that uses app authentication in a non-DEFAULT group, add the header parameters X-HW-ID and X-HW-APPKEY and set the parameter values to the key and secret of an app authorized for the API or a client AppKey and AppSecret.
- To use an IP address to call an API that does not use app authentication in a non-DEFAULT group, add the header parameter host.
- Set the authentication parameters.
-
--
- - - Authentication Mode
-- Request Parameter Configuration
-- - App authentication (with a signature)
-- Use the SDK to sign API requests. For details, see section "Calling APIs Through App Authentication" in the API Gateway Developer Guide.
-- - App authentication (through simple authentication)
-- Add the header parameter X-Apig-AppCode and set the parameter value to the AppCode obtained in Obtaining APIs and Documentation. For details, see Getting Started.
-- - App authentication (with app_secret)
-- -
- On the Configuration Parameters tab page of a dedicated gateway, the app_secret parameter has been set to on to enable app_secret authentication and app_api_key has been set to off to disable app_api_key authentication.
- Add the header parameter X-HW-ID and set the parameter value to the key of the app authorized for the API or the client AppKey.
- Add the header parameter X-HW-AppKey and set the parameter value to the secret or AppSecret obtained in Obtaining APIs and Documentation.
- - App authentication (with app_basic)
-- -
- To enable app_basic authentication, ensure that the app_basic parameter has been set to on on the Configuration Parameters tab page of the dedicated gateway.
- Add the header parameter Authorization and set the parameter value to "Basic + base64 (appkey + : + appsecret)", in which appkey and appsecret are the key and secret (or AppKey and AppSecret) obtained in Obtaining APIs and Documentation.
- - IAM authentication (with a token)
-- Obtain a token from the cloud platform and carry the token in API requests for authentication. For details, see section "Token Authentication" in the API Gateway Developer Guide.
-- - IAM authentication (with AK/SK)
-- Use an SDK to sign API requests. For details, see section "AK/SK Authentication" in the API Gateway Developer Guide.
-- - Custom authentication
- -- Carry authentication information in API request parameters for authentication.
-- - - None
- -- Call APIs without authentication.
--- diff --git a/docs/apig/umn/apig-ug-0012.html b/docs/apig/umn/apig-ug-0012.html deleted file mode 100644 index 5b34a70c..00000000 --- a/docs/apig/umn/apig-ug-0012.html +++ /dev/null @@ -1,15 +0,0 @@ - - ---Parent topic: Calling Published APIs-Getting Started
- --- diff --git a/docs/apig/umn/apig-ug-0013.html b/docs/apig/umn/apig-ug-0013.html index 6a712081..3081515e 100644 --- a/docs/apig/umn/apig-ug-0013.html +++ b/docs/apig/umn/apig-ug-0013.html @@ -1,12 +1,12 @@-
-- Introduction
-
-- Opening APIs
-
-- Calling APIs
-
-Introduction
-API Gateway (APIG) is a fully managed service that enables you to securely build, manage, and deploy APIs at any scale with high performance and availability. With APIG, you can easily integrate your internal service systems and selectively expose your service capabilities.
-To learn about the process of exposing and calling an API, see Opening APIs and Calling APIs. Simple authentication with an app is used for illustration.
+API Gateway (APIG) is a fully managed service that enables you to securely build, manage, and deploy APIs at any scale with high performance and availability. With APIG, you can easily integrate your internal service systems and selectively expose your service capabilities.
+To learn about the process of exposing and calling an API, see Opening APIs and Calling APIs. Simple authentication with an app is used for illustration.
diff --git a/docs/apig/umn/apig-ug-0015.html b/docs/apig/umn/apig-ug-0015.html deleted file mode 100644 index 0d602247..00000000 --- a/docs/apig/umn/apig-ug-0015.html +++ /dev/null @@ -1,164 +0,0 @@ - - --Parent topic: Getting Started+Parent topic: Getting StartedRequest Throttling Plug-in
--The request throttling plug-in limits the number of times an API can be called within a specific time period. It supports parameter-based, basic, and excluded throttling.
--![]()
If your gateway does not support the request throttling plug-in, contact customer service to upgrade the gateway.
--
- Basic throttling
Throttle requests by API, user, app, or source IP address. This function is equivalent to a request throttling policy but is incompatible with it.
-- Parameter-based throttling
Throttle requests based on headers, path parameters, methods, query strings, or system variables.
-- Excluded throttling -
-Constraints
-
- A request throttling policy becomes invalid if a request throttling plug-in is bound to the same API as the policy.
- You can define a maximum of 100 parameter rules.
- The plug-in content cannot exceed 65,535 characters.
-Configuration Parameters
---Example Script
{ - "scope": "basic", - "default_interval": 60, - "default_time_unit": "second", - "api_limit": 100, - "app_limit": 50, - "user_limit": 50, - "ip_limit": 20, - "specials": [ - { - "type": "app", - "policies": [ - { - "key": "2e421d76dc6c4c75941511ccf654e368", - "limit": 10 - } - ] - }, - { - "type": "user", - "policies": [ - { - "key": "878f1b87f71c40a7a15db0998f358bb9", - "limit": 10 - } - ] - } - ], - "parameters": [ - { - "type": "path", - "name": "reqPath", - "value": "reqPath" - }, - { - "type": "method", - "name": "method", - "value": "method" - }, - { - "type": "header", - "name": "Host", - "value": "Host" - } - ], - "rules": [ - { - "match_regex": "[\"Host\",\"==\",\"www.abc.com\"]", - "rule_name": "rule-jlce", - "time_unit": "second", - "interval": 0, - "limit": 5 - } - ] -}--- diff --git a/docs/apig/umn/apig-ug-0016.html b/docs/apig/umn/apig-ug-0016.html deleted file mode 100644 index 5212839d..00000000 --- a/docs/apig/umn/apig-ug-0016.html +++ /dev/null @@ -1,24 +0,0 @@ - - ---Parent topic: Plug-ins-Service Overview
---- -- diff --git a/docs/apig/umn/apig-ug-0017.html b/docs/apig/umn/apig-ug-0017.html deleted file mode 100644 index 5bbffa02..00000000 --- a/docs/apig/umn/apig-ug-0017.html +++ /dev/null @@ -1,33 +0,0 @@ - - -What Is APIG?
--API Gateway (APIG) is a high-performance, high-availability, and high-security API hosting service that helps you build, manage, and deploy APIs at any scale. With just a few clicks, you can integrate internal systems, and selectively expose capabilities with minimal costs and risks.
--
- To monetize your service and data capabilities, you can open them up by creating APIs in APIG. Then you can provide the APIs for API callers using offline channels.
- You can also obtain open APIs from APIG to reduce your development time and costs.
Figure 1 APIG architecture--Product Functions
-
- API lifecycle management
The lifecycle of an API involves creating, publishing, removing, and deleting the API. API lifecycle management enables you to quickly and efficiently expose service capabilities.
-- Cloud native gateway
APIG integrates traffic ingress (Kubernetes Ingress) and microservice governance (Kubernetes Gateway API) in one gateway, improving performance, simplifying the architecture, and reducing deployment and O&M costs.
-- Built-in debugging tool
With the built-in debugging tool, you can debug APIs using different HTTP headers and request bodies. This tool simplifies the API development process and reduces the API development and maintenance costs.
-- Version management
An API can be published in different environments. Publishing an API again in the same environment will override the API's previous version. APIG displays the publication history (including the version, description, date and time, and environment) of each API. You can roll back an API to any historical version to meet dark launch and version upgrade requirements.
-- Environment variables
Environment variables are manageable and specific to environments. Variables of an API will be replaced by the values of the variables in the environment where the API will be published. You can create variables in different environments to call different backend services using the same API.
-- Request throttling
-
- For different services and users, you can control the request frequency at which an API can be called by a user, an app, and an IP address. This ensures that backend services can run stably.
- The throttling can be accurate to the second, minute, hour, or day.
- Excluded apps and tenants can be configured to limit the number of API calls from specific apps and tenants, respectively.
- Monitoring and alarm
APIG provides visualized, real-time API monitoring, and displays multiple metrics, including number of requests, invocation latency, and number of errors. The metrics help you understand the API usage, allowing you to identify potential service risks.
-- Access control
Access control policies are one of the security measures provided by APIG. They allow or deny API access from specific IP addresses or accounts.
-- VPC channels
VPC channels can be created for accessing resources in Virtual Private Clouds (VPCs) and exposing capabilities of backend services deployed in VPCs. A VPC channel forwards API requests to different servers for load balancing.
-- Signature keys
A signature key consists of a key and secret, and takes effect only after being bound to APIs. Signature keys are used by backend services to verify the identity of APIG and ensure secure access.
-- Mock response
Mock backends simulate API responses for circuit breakers, service degradation, and redirection.
--- - - \ No newline at end of file diff --git a/docs/apig/umn/apig-ug-0019.html b/docs/apig/umn/apig-ug-0019.html deleted file mode 100644 index 6e941981..00000000 --- a/docs/apig/umn/apig-ug-0019.html +++ /dev/null @@ -1,53 +0,0 @@ - - ---Parent topic: Service Overview-Managing VPC Endpoints
--VPC endpoints are secure and private channels for connecting VPCs to VPC endpoint services.
-APIs can be exposed and accessed across VPCs in the same region of the same cloud.
-Figure 1 Cross-VPC access in the same region--Procedure
-
- Log in to the management console.
- In the navigation pane, choose Dedicated Gateways.
- Click Access Console next to a gateway or click the gateway name.
- Click VPC Endpoints to view details. For details, see "VPC Endpoints" in the VPC Endpoint User Guide.
-
--
Table 1 VPC endpoint information - - - Parameter
-- Description
-- - VPC Endpoint Service
-- Name of the VPC endpoint service. When you purchase a gateway, a VPC endpoint service is automatically created and the gateway can be accessed using a VPC endpoint.
-- - Connections
-- VPC endpoints connected to the gateway. By default, the endpoints are connected to the VPC you selected when purchasing the gateway.
--
- VPC Endpoint ID: ID of a VPC endpoint.
- Packet ID: identifier of the VPC endpoint ID.
- Status: status of the VPC endpoint.
For details about VPC endpoint statuses, see "What Are Statuses of VPC Endpoint Services and VPC Endpoints?" in the VPC Endpoint User Guide.
-- Owner: of the VPC endpoint creator. To obtain the account ID, see "Obtaining an Account Name and Account ID" in the API Gateway API Reference.
- Created: time when the VPC endpoint is created.
- Operation: whether to allow the VPC endpoint to connect to the VPC endpoint service. Accept or reject connection from the VPC endpoint to the VPC endpoint service.
NOTICE:-Once you reject the connection, services that run using the connection may be affected. Exercise caution.
-- - - Permissions
-- Specify accounts allowed to access using the VPC endpoints by adding the account IDs to the whitelist.
-Click Add Account and enter an account ID. To obtain the account ID, see "Obtaining an Account Name and Account ID" in the API Gateway API Reference.
--
- Account ID: ID of an account allowed to access using the VPC endpoints.
- Created: time when the whitelist is created.
- Operation: Manage access of the account from VPC endpoints. To forbid access of the account, remove it from the whitelist.
-- - - \ No newline at end of file diff --git a/docs/apig/umn/apig-ug-0020.html b/docs/apig/umn/apig-ug-0020.html deleted file mode 100644 index c4d5f070..00000000 --- a/docs/apig/umn/apig-ug-0020.html +++ /dev/null @@ -1,13 +0,0 @@ - - ---Parent topic: Gateway Management-Key Operations Recorded by CTS
- - - diff --git a/docs/apig/umn/apig-ug-0021.html b/docs/apig/umn/apig-ug-0021.html deleted file mode 100644 index 5e9f5e96..00000000 --- a/docs/apig/umn/apig-ug-0021.html +++ /dev/null @@ -1,12 +0,0 @@ - - -Querying Audit Logs
--Query audit logs by following the procedure in section "Querying Real-Time Traces" in the Cloud Trace Service User Guide.
-Figure 1 Viewing logs--- diff --git a/docs/apig/umn/apig-ug-180307001.html b/docs/apig/umn/apig-ug-180307001.html new file mode 100644 index 00000000..3e847c3a --- /dev/null +++ b/docs/apig/umn/apig-ug-180307001.html @@ -0,0 +1,27 @@ + + +--Parent topic: Key Operations Recorded by CTS-Opening APIs
+ +++ diff --git a/docs/apig/umn/apig-ug-180307003.html b/docs/apig/umn/apig-ug-180307003.html new file mode 100644 index 00000000..5508b2fe --- /dev/null +++ b/docs/apig/umn/apig-ug-180307003.html @@ -0,0 +1,31 @@ + + ++
+ +- Process Flow
+
+- Creating an API Group
+
+- Binding a Domain Name
+
+- Creating an API
+
+- Debugging an API
+
+- (Optional) Creating an Environment
+
+- Publishing an API
+
+++Parent topic: Getting Started+Creating an API Group
+++
- Log in to the APIG console.
- In the upper part of the navigation pane, select the gateway.
- In the navigation pane, choose API Management > API Groups.
- Choose Create API Group > Create Directly.
+
++
Table 1 API group information + + + Parameter
++ Description
++ + Name
++ API group name. It is recommended that you enter a name based on naming rules to facilitate search.
++ + + Description
++ Description of the API group.
+- Click OK. The system automatically allocates a debugging domain name to the API group. APIs in the group can be debugged using the domain name.
++ diff --git a/docs/apig/umn/apig-ug-180307004.html b/docs/apig/umn/apig-ug-180307004.html new file mode 100644 index 00000000..b29604d4 --- /dev/null +++ b/docs/apig/umn/apig-ug-180307004.html @@ -0,0 +1,31 @@ + + +++Parent topic: Opening APIs+(Optional) Creating an Environment
+++
- In the navigation pane, choose API Management > API Policies. Then click the Environments tab.
- Click Create Environment and set the environment information.
+
++
Table 1 Environment information + + + Parameter
++ Description
++ + Name
++ Environment name. It is recommended that you enter a name based on naming rules to facilitate search.
++ + + Description
++ Description of the environment.
+- Click OK.
++ diff --git a/docs/apig/umn/apig-ug-180307005.html b/docs/apig/umn/apig-ug-180307005.html new file mode 100644 index 00000000..533d52d8 --- /dev/null +++ b/docs/apig/umn/apig-ug-180307005.html @@ -0,0 +1,12 @@ + + +++Parent topic: Opening APIs+Publishing an API
+++
- In the navigation pane, choose API Management > APIs.
- Locate the API created in Creating an API, and click Publish.
- Select the environment where the API will be published. +
- Click OK.
++ diff --git a/docs/apig/umn/apig-ug-180307007.html b/docs/apig/umn/apig-ug-180307007.html new file mode 100644 index 00000000..3af11a42 --- /dev/null +++ b/docs/apig/umn/apig-ug-180307007.html @@ -0,0 +1,21 @@ + + +++Parent topic: Opening APIs+Calling APIs
+ +++ diff --git a/docs/apig/umn/apig-ug-180307008.html b/docs/apig/umn/apig-ug-180307008.html new file mode 100644 index 00000000..cf660528 --- /dev/null +++ b/docs/apig/umn/apig-ug-180307008.html @@ -0,0 +1,18 @@ + + ++
+ +- Process Flow
+
+- Creating a Credential and Getting Authorized
+
+- Adding an AppCode for Simple Authentication
+
+- Calling an API
+
+++Parent topic: Getting Started+Process Flow
++The following figure shows the process of calling an API.
++ +
+
- Obtaining an API +
- Creating a Credential and Getting Authorized
APIs that use app authentication can only be called using credentials bound to them.
+- Adding an AppCode for Simple Authentication
API Gateway only verifies the AppCode during simple authentication.
+- Calling an API
Use an API test tool to call the API with the simple authentication AppCode.
+++ diff --git a/docs/apig/umn/apig-ug-180307009.html b/docs/apig/umn/apig-ug-180307009.html new file mode 100644 index 00000000..9ac74f79 --- /dev/null +++ b/docs/apig/umn/apig-ug-180307009.html @@ -0,0 +1,11 @@ + + +++Parent topic: Calling APIs+Adding an AppCode for Simple Authentication
+++
- In the credential list, click the credential created in Creating a Credential to go to the credential details page.
- Click Add AppCode in the AppCodes area.
- Select Automatically generated.
- Click OK.
++ diff --git a/docs/apig/umn/apig-ug-180307010.html b/docs/apig/umn/apig-ug-180307010.html new file mode 100644 index 00000000..a8b9fc38 --- /dev/null +++ b/docs/apig/umn/apig-ug-180307010.html @@ -0,0 +1,34 @@ + + +++Parent topic: Calling APIs+Creating a Credential and Getting Authorized
+++Creating a Credential
+
- In the navigation pane, choose API Management > Credentials.
- Click Create Credential and set credential information.
+
++
Table 1 Credential information + + + Parameter
++ Description
++ + Name
++ Credential name. It is recommended that you enter a name based on naming rules to facilitate search.
++ + + Description
++ Description about the credential.
+- Click OK.
+Binding to an API
+
- In the Operation column of the created credential, click Bind to APIs. Note that only APIs that use app authentication can be bound.
- Select the environment, API group, and API created in Opening APIs, and click OK.
++ diff --git a/docs/apig/umn/apig-ug-180307011.html b/docs/apig/umn/apig-ug-180307011.html new file mode 100644 index 00000000..028ea164 --- /dev/null +++ b/docs/apig/umn/apig-ug-180307011.html @@ -0,0 +1,15 @@ + + +++Parent topic: Calling APIs+Calling an API
++Use the API test tool to configure the API request and authentication. For details about how to call an API, see section "Calling Published APIs" > Calling APIs.
++
- Obtain the API request information and construct the API URL.
For illustration purposes, an API and its documentation are obtained through offline channels. You can also obtain the authentication mode, request method, request path, and other information about the API.
+- Add the header parameter X-Apig-AppCode and set the parameter value to the generated AppCode.
- Add the header parameter x-stage and set the parameter value to the running environment. Skip this step if the API has been published in the RELEASE environment.
- Click Send to send a request.
If the API is called successfully, 200 OK is displayed. Otherwise, rectify the fault by referring to Error Codes.
++
++ diff --git a/docs/apig/umn/apig-ug-190419107.html b/docs/apig/umn/apig-ug-190419107.html index 2b1a5e05..b8ffee98 100644 --- a/docs/apig/umn/apig-ug-190419107.html +++ b/docs/apig/umn/apig-ug-190419107.html @@ -1,13 +1,13 @@++Parent topic: Calling APIs+Binding a Domain Name
-
- On the API Groups page, click the group created in Creating an API Group to go to the group details page.
- Click the Domain Names tab.
- Click Bind Independent Domain Name.
![]()
The independent domain name must be registered and resolved. For details, see "Prerequisites" in Binding a Domain Name.
+
- On the API Groups page, click the group created in Creating an API Group to go to the group details page.
- Click the Group Information tab.
- Click Bind Independent Domain Name.
![]()
The independent domain name must be registered and resolved. For details, see "Prerequisites" in Binding a Domain Name.
diff --git a/docs/apig/umn/apig-ug-190419108.html b/docs/apig/umn/apig-ug-190419108.html index cd601cb2..dd3e2104 100644 --- a/docs/apig/umn/apig-ug-190419108.html +++ b/docs/apig/umn/apig-ug-190419108.html @@ -1,53 +1,12 @@-Parent topic: Opening APIs+Parent topic: Opening APIsDebugging an API
-
- On the APIs page, locate the API created in Creating an API, and choose More > Debug.
- On the left side, set the API request parameters listed in Table 1. On the right side, view the API request and response information after you click Send Request.
-
--
Table 1 Parameters for debugging an API - - - Parameter
-- Description
-- - Protocol
-- This parameter can be modified only if you set Protocol to HTTP&HTTPS for the API.
-- - Method
-- This parameter can be modified only if you set Method to ANY for the API.
-- - Path
-- Request path of the API.
-- - Query Strings
-- Query string parameters and values.
-- - Headers
-- HTTP headers and values.
-- - - Body
-- This parameter can be modified only if you set Method to PATCH, POST, or PUT for the API.
-- Click Send Request.
If the API is called successfully, the status code 200 is displayed.
- +
- On the APIs tab page, select an API from Creating an API and click Debug.
- Configure the URL.
- Click Debug. The API request and response information are displayed at the bottom of the page.
If the API is called successfully, the status code 200 is displayed. Otherwise, rectify the fault by referring to Error Codes.
diff --git a/docs/apig/umn/apig-ug-190529107.html b/docs/apig/umn/apig-ug-190529107.html deleted file mode 100644 index 7825afc5..00000000 --- a/docs/apig/umn/apig-ug-190529107.html +++ /dev/null @@ -1,17 +0,0 @@ - - - --Parent topic: Opening APIs+Parent topic: Opening APIsPermissions Management
- --- - - diff --git a/docs/apig/umn/apig-ug-190529109.html b/docs/apig/umn/apig-ug-190529109.html deleted file mode 100644 index fd99e150..00000000 --- a/docs/apig/umn/apig-ug-190529109.html +++ /dev/null @@ -1,64 +0,0 @@ - - -Creating a User and Granting APIG Permissions
--This topic describes how to use Identity and Access Management (IAM) to implement permissions control for your APIG resources. With IAM, you can:
--
- Create IAM users for employees based on your enterprise's organizational structure. Each IAM user will have their own security credentials for accessing APIG resources.
- Grant only the permissions required for users to perform a specific task.
- Entrust an account or a cloud service to perform O&M on your APIG resources.
If your account does not require individual IAM users, skip this chapter.
-This section describes the procedure for granting permissions (see Figure 1).
--Prerequisites
Learn about the permissions (see Table 1) supported by APIG and choose policies or roles according to your requirements. For the permissions of other services, see Others > Permissions in the service list. ----
Table 1 System-defined roles and policies supported by APIG - - - Role/Policy Name
-- Description
-- Type
-- Dependency
-- - APIG Administrator
-- Administrator permissions for APIG. Users granted these permissions can use all functions of API gateways.
-- System-defined role
-- None
-- - APIG FullAccess
-- Full permissions for APIG. Users granted these permissions can use all functions of dedicated gateways.
-- System-defined policy
-- None
-- - - APIG ReadOnlyAccess
-- Read-only permissions for APIG. Users granted these permissions can only view dedicated gateways.
-- System-defined policy
-- None
--Process Flow
- --
- Create a user group and assign permissions.
Create a user group on the IAM console, and attach the APIG Administrator role or the APIG FullAccess policy to the group.
-- Create an IAM user.
Create a user on the IAM console and add the user to the group created in 1.
-- Log in and verify permissions.
Log in to the APIG console as the created user, and verify that the user has administrator permissions for APIG.
--- diff --git a/docs/apig/umn/apig-ug-191004.html b/docs/apig/umn/apig-ug-191004.html deleted file mode 100644 index 7c8c9105..00000000 --- a/docs/apig/umn/apig-ug-191004.html +++ /dev/null @@ -1,118 +0,0 @@ - - ---Parent topic: Permissions Management-Buying a Dedicated Gateway
--This section describes how to buy a dedicated gateway. You can create APIs and use them to provide services only after a dedicated gateway is created.
--Information on Buying a Dedicated Gateway
There are some limitations on buying a dedicated gateway. If you cannot buy a dedicated gateway or a gateway fails to be created, check the following items:
--
- Gateway quota
By default, your account can be used to create five dedicated gateways in a project. To create more dedicated gateways, submit a service ticket to increase the quota.
-- Permissions
You must be assigned both the APIG Administrator and VPC Administrator roles.
-Alternatively, you must be attached the APIG FullAccess policy.
-You can also be granted permissions using custom policies. For details, see APIG Custom Policies.
-- Number of available private IP addresses in the subnet
The basic, professional, enterprise, and platinum editions of APIG require 3, 5, 6, and 7 private IP addresses in a subnet, respectively. Ensure that the subnet you choose has sufficient private IP addresses on the Virtual Private Cloud (VPC) console.
--Network Environment
-
- VPC
Dedicated gateways are deployed in VPCs. Cloud resources, such as Elastic Cloud Servers (ECSs), in the same VPC can call APIs using the private IP address of the dedicated gateway deployed in the VPC.
-You are advised to deploy your dedicated gateways in the same VPC as your other services to facilitate network configuration and secure network access.
--![]()
VPCs of dedicated gateways cannot be modified.
-- EIP
To allow public inbound access to the APIs deployed in a dedicated gateway, buy an Elastic IP (EIP) and bind it to the dedicated gateway.
--![]()
For APIs whose backend services are deployed on a public network, APIG automatically generates an IP address for public outbound access and you do not need to buy an EIP.
-- Security group
Similar to a firewall, a security group controls access to a gateway through a specific port and transmission of communication data from the gateway to a specific destination address. For security purposes, create inbound rules for the security group to allow access only on specific ports.
-The security group bound to a dedicated gateway must meet the following requirements:
--
- Inbound access: To allow the APIs in the dedicated gateway to be accessed over public networks or from other security groups, add inbound rules for the security group to allow access on ports 80 (HTTP) and 443 (HTTPS).
- Outbound access: If the backend service of an API is deployed on a public network or in another security group, add outbound rules for the security group to allow access to the backend service address through the API calling port.
- If the frontend and backend services of an API are bound with the same security group and VPC as the dedicated gateway, no inbound or outbound rules are needed to allow access through the preceding ports.
-Procedure
-
- Log in to the management console.
- In the navigation pane, choose Dedicated Gateways.
- Click Buy Dedicated Gateway.
-
-- Click Next.
- Check the gateway configurations, and click Pay Now. The gateway creation progress is displayed on the screen.
-Follow-Up Operations
After the gateway is created, you can create and manage APIs on the console of the gateway. The Gateway Information page shows the gateway details, network configurations, API resources, and metrics.
-You can modify the gateway name, description, scheduled maintenance time window, security group, and EIP.
--- diff --git a/docs/apig/umn/apig-ug-200801.html b/docs/apig/umn/apig-ug-200801.html deleted file mode 100644 index 0c9f8e83..00000000 --- a/docs/apig/umn/apig-ug-200801.html +++ /dev/null @@ -1,150 +0,0 @@ - - ---Parent topic: Gateway Management-Modifying a Dedicated Gateway
--You can modify the basic information and configuration parameters of dedicated gateways.
--Modifying Basic Information
To modify the basic information about a dedicated gateway, do as follows:
--
- Log in to the management console.
- In the navigation pane, choose Dedicated Gateways.
- Click Access Console in the upper right corner of the dedicated gateway you want to modify.
- On the Basic Information tab page, modify the basic information.
-
--
Table 1 Basic information about a dedicated gateway - - - Parameter
-- Description
-- - Gateway Name
-- Name of the gateway.
-- - Description
-- Description of the gateway.
-- - Scheduled Maintenance
-- Time period when the gateway can be maintained by technical support personnel. The technical support personnel will contact you if any maintenance activity is going to take place during the window.
-Select a time period with low service demands.
-- - Security Group
-- Select a security group to control inbound and outbound access.
-If the backend service of an API is deployed on an external network, configure security group rules to allow access to the backend service address through the API calling port.
-NOTE:--
- If you change the security group, the new security group must meet the requirements for calling APIs included in the dedicated gateway and accessing the backend services of these APIs.
- If public inbound access is enabled, add inbound rules for the security group to allow access on ports 80 (HTTP) and 443 (HTTPS).
- - EIP
-- Determine whether to allow the APIs created in the dedicated gateway to be called by external services using an EIP. To enable this function, assign an EIP to the dedicated gateway.
-APIs in the dedicated gateway can be called using independent domain names or subdomain names. There is a limitation on the number of times that APIs in an API group can be called per day using the subdomain name.
-To overcome the limitation, bind independent domain names to the API group and ensure that the independent domain names have already been CNAMEd to the EIP of the dedicated gateway to which the API group belongs.
-- - Bandwidth
-- When EIP is enabled, Bandwidth is displayed in the Inbound Access area.
-The bandwidth is billed by hour based on the rate of the EIP service.
-- - Outbound Access
-- Determine whether to allow API backend services to be deployed on public networks and accessed using the IP address automatically generated by APIG. You can enable or disable outbound access at any time.
-- - Bandwidth
-- The bandwidth is billed by hour based on the rate of the EIP service.
-- - - Routes
-- Configure routes at your premises if the subnet of your data center is within the following three segments: 10.0.0.0/8-24, 172.16.0.0/12-24, and 192.168.0.0/16-24.
--Modifying Configuration Parameters
-
- Log in to the management console.
- In the navigation pane, choose Dedicated Gateways.
- Click Access Console in the upper right corner of the dedicated gateway you want to modify.
- Click the Configuration Parameters tab, and click Edit in the row containing the parameter you want to modify.
-
--
Table 2 Configuration parameters - - - Parameter Name
-- Description
-- - ratelimit_api_limits
-- Default request throttling value applied to all APIs. The total number of times an API can be called is determined by this parameter only if no request throttling policy is bound to the API. The Max. API Requests of a request throttling policy cannot exceed the value of this parameter.
-- - request_body_size
-- The maximum body size allowed for an API request.
-- - backend_timeout
-- Backend response timeout. Value range: 1 ms to 600,000 ms.
-- - app_token
-- Determine whether to enable app_token authentication. If you enable this function, an access_token can be added to the API request for authentication.
--
- app_token_expire_time: the validity period of an access_token. A new access_token must be obtained before the original access_token expires.
- refresh_token_expire_time: the validity period of a refresh_token. A refresh_token is used to obtain a new access_token.
- app_token_uri: the URI used to obtain an access_token.
- app_token_key: the encryption key of an access token.
- - app_basic
-- Determine whether to enable app_basic authentication. After this option is enabled, users can add the header parameter Authorization and set the parameter value to "Basic + base64 (appkey + : + appsecret)", in which appkey and appsecret are the key and secret of an app or the AppKey and AppSecret of a client.
-- - app_secret
-- Determine whether to enable app_secret authentication. If you enable this function, the X-HW-ID and X-HW-AppKey parameters can be added to the API request to carry the key and secret of an app (the AppKey and AppSecret of a client) for authentication.
-If you want to enable app_secret authentication, app_api_key authentication must be disabled.
-- - app_route
-- Determine whether to support IP address–based API access. If you enable this function, APIs that use app authentication in any group except DEFAULT can be called using IP addresses.
-- - backend_client_certificate
-- Determine whether to enable backend two-way authentication. If you enable this function, you can configure two-way authentication for a backend when creating an API.
-- - ssl_ciphers
-- Supported HTTPS cipher suites. Select cipher suites that meet your requirements.
-- - real_ip_from_xff
-- Determine whether to use the IP addresses in the X-Forwarded-For header for access control and request throttling.
-xff_index: Sequence number of an IP address in the X-Forwarded-For header. The value can be positive, negative, or 0.
--
- If the value is 0 or positive, the IP address of the corresponding index in the X-Forwarded-For header will be obtained.
- If the value is negative, the IP address of the indicated reverse sequence in the X-Forwarded-For header will be obtained.
For example, assume that the X-Forwarded-For header of a request received by API gateway contains three IP addresses: IP1, IP2, and IP3. If the value of xff_index is 0, IP1 is obtained. If the value is 1, IP2 is obtained. If the value is –1, IP3 is obtained. If the value is –2, IP2 is obtained.
-- - - vpc_name_modifiable
-- Determine whether load balance channel names can be modified.
-NOTICE:-If this option is enabled, load balance channels of the current gateway cannot be managed using project-level load balance channel management APIs.
--- diff --git a/docs/apig/umn/apig-ug-cmccfaq.html b/docs/apig/umn/apig-ug-cmccfaq.html deleted file mode 100644 index 5057a821..00000000 --- a/docs/apig/umn/apig-ug-cmccfaq.html +++ /dev/null @@ -1,28 +0,0 @@ - - ---Parent topic: Gateway Management-FAQs
----- diff --git a/docs/apig/umn/apig-zh-pd-180307002.html b/docs/apig/umn/apig-zh-pd-180307002.html deleted file mode 100644 index fb6768fa..00000000 --- a/docs/apig/umn/apig-zh-pd-180307002.html +++ /dev/null @@ -1,24 +0,0 @@ - - --
-- Common FAQs
-
-- API Creation
-
-- API Calling
-
-- API Authentication
-
-- API Control Policies
-
-- API Publishing
-
-- API Import and Export
-
-- API Security
-
-- Other FAQs
-
-Product Advantages
---Available Out-of-the-Box
You can quickly create APIs by configuring the required settings on the API Gateway console. API Gateway provides an inline debugging tool to simplify API development, and allows you to publish an API in multiple environments for easy testing and fast iteration.
--Convenient API Lifecycle Management
API Gateway provides full-lifecycle API management, including design, development, test, publish, and O&M, to help you quickly build, manage, and deploy APIs at any scale.
--Refined Request Throttling
API Gateway combines synchronous and asynchronous traffic control and multiple algorithms to throttle requests at the second level. You can flexibly define request throttling policies to ensure stability and continuity of API services.
--Visualized API Monitoring
API Gateway monitors the number of API calls, data latency, and number of errors, helping you identify potential service risks.
--Comprehensive Security Protection
API Gateway provides multiple measures to secure API calling, such as Secure Sockets Layer (SSL) transfer, strict access control, IP address blacklist/whitelist, authentication, anti-replay, anti-attack, and multiple audit rules. In addition, API Gateway implements flexible and refined quota management and request throttling to help you flexibly and securely open your backend services.
--Flexible Policy Routes
You can configure backends for an API to forward requests according to multiple policies. This facilitates dark launch and environment management.
--SDKs of Different Programming Languages
SDKs of different programming languages (such as Java, Go, Python, and C) are available for access from clients. Because the backends do not need to be modified, only one system is required to adapt to different service scenarios (such as mobile devices and IoT).
--- diff --git a/docs/apig/umn/apig-zh-pd-180307003.html b/docs/apig/umn/apig-zh-pd-180307003.html deleted file mode 100644 index 019adda1..00000000 --- a/docs/apig/umn/apig-zh-pd-180307003.html +++ /dev/null @@ -1,23 +0,0 @@ - - ---Parent topic: Service Overview-Application Scenarios
---Internal System Decoupling
As enterprises develop rapidly with quick business changes, internal systems of enterprises need to keep pace with the development. However, it is difficult to ensure system universality and stability because internal systems are dependent on each other. APIG uses standard RESTful APIs to simplify the service architecture, decouples internal systems, and separates the frontend from backend. Existing capabilities can be reused to avoid repetitive development.
--
-Enterprise Capabilities Opening
An enterprise cannot develop without partners' capabilities, such as a third-party payment platform and partner account login. APIG enables you to selectively expose capabilities to partners by using standard APIs and share services and data with partners to build a new ecosystem.
--
-- - - \ No newline at end of file diff --git a/docs/apig/umn/apig-zh-pd-180307004.html b/docs/apig/umn/apig-zh-pd-180307004.html deleted file mode 100644 index c0b9b63e..00000000 --- a/docs/apig/umn/apig-zh-pd-180307004.html +++ /dev/null @@ -1,40 +0,0 @@ - - ---Parent topic: Service Overview-Basic Concepts
---API
A set of predefined functions that encapsulates application capabilities. You can create APIs and make them accessible to users.
-When creating an API, you need to configure the basic information and the frontend and backend request paths, parameters, and protocols.
--API Group
A collection of APIs used for the same service. API groups facilitate API management.
--Environment
A stage in the lifecycle of an API. An environment, such as API testing or development environment, specifies the usage scope of APIs, facilitating API lifecycle management. The same API can be published in different environments.
-To call an API in different environments, you need to add the x-stage header parameter to the request sent to call the API. The value of this parameter is an environment name.
--Environment Variable
A variable that is manageable and specific to an environment. You can create variables in different environments to call different backend services using the same API.
--Request Throttling
Controls the number of times APIs can be called by a user, an app, or an IP address during a specific period to protect backend services.
-Request throttling can be accurate to the minute and second.
--Access Control
Access control policies are one of the security measures provided by APIG. They allow or deny API access from specific IP addresses or accounts.
--App
An entity that requests for APIs. An app can be authorized to access multiple APIs, and multiple apps can be authorized to access the same API.
--Signature Key
Consists of a key and secret, which are used by backend services to verify the identity of API Gateway and ensure secure access.
-When an API bound with a signature key is called, API Gateway adds signature information to the API requests. The backend service of the API signs the requests in the same way, and verifies the identity of API Gateway by checking whether the signature is consistent with that in the Authorization header sent by API Gateway.
--VPC Channel
A method for accessing VPC resources from API Gateway, allowing you to selectively expose backend services deployed in VPCs to third-party users.
--Custom Authentication
A mechanism defined with custom rules for API Gateway to verify the validity and integrity of requests initiated by API callers. The mechanism is also used for backend services to verify the requests forwarded by API Gateway.
-The following two types of custom authentication are provided:
--
- Frontend custom authentication: A custom authorizer is configured with a function to authenticate requests for an API.
- Backend custom authentication: A custom authorizer can be configured to authenticate requests for different backend services, eliminating the need to customize APIs for different authentication systems and simplifying API development. You only need to create a function-based custom authorizer in API Gateway to connect to the backend authentication system.
-Simple Authentication
Simple authentication facilitates quick response for API requests by adding the X-Apig-AppCode parameter (whose value is an AppCode) to the HTTP request header. API Gateway verifies only the AppCode and does not verify the request signature.
--Gateway Response
Gateway responses are returned if API Gateway fails to process API requests. API Gateway provides default responses for multiple scenarios and allows you to customize response status codes and content. You can add a gateway response in JSON format on the API Groups page.
--- diff --git a/docs/apig/umn/apig-zh-pd-180307005.html b/docs/apig/umn/apig-zh-pd-180307005.html deleted file mode 100644 index fe4ea836..00000000 --- a/docs/apig/umn/apig-zh-pd-180307005.html +++ /dev/null @@ -1,185 +0,0 @@ - - ---Parent topic: Service Overview-Notes and Constraints
--To change the default restrictions, increase the quota by referring to
- ---
Table 1 Dedicated API gateway quotas - - - Item
-- Default Restriction
-- Modifiable
-- - Gateways
-- 5
-- √
-- - API groups
-- 1500
-- √
-- - APIs
-- Number of APIs for each gateway edition:
--
- Basic: 250
- Professional: 800
- Enterprise: 2000
- Platinum: 8000
- √
-- - Backend policies
-- 5
-- √
-- - Apps
-- 50. The app quota includes the apps you have created.
-- √
-- - Request throttling policies
-- -
- You can create a maximum of 300 request throttling policies for each gateway.
- The call limit for a single user cannot exceed that for the target API.
- The call limit for a single app cannot exceed that for a single user.
- The call limit for a single IP address cannot exceed that for the target API.
- √
-- - Environments
-- 10
-- √
-- - Signature keys
-- 200
-- √
-- - Access control policies
-- 100
-- √
-- - VPC channels
-- 200
-- √
-- - Variables
-- You can create a maximum of 50 variables for an API group in each environment.
-- √
-- - Independent domain names
-- A maximum of five independent domain names can be bound to an API group.
-- √
-- - Cloud servers
-- A maximum of 10 cloud servers can be added to a VPC channel.
-- √
-- - Parameters
-- A maximum of 50 parameters can be created for an API.
-- √
-- - API publication records
-- A maximum of 10 publication records of an API can be retained for each environment.
-- √
-- - API access rate
-- Up to 6000 times per second
-- √
-- - Excluded apps
-- A maximum of 30 excluded apps can be added to a request throttling policy.
-- √
-- - Excluded tenants
-- A maximum of 30 excluded tenants can be added to a request throttling policy.
-- √
-- - Access to a subdomain name
-- A subdomain name can be accessed up to 1000 times a day.
-- x
-- - Maximum size of an API request package
-- 12 MB
-- √
-- - TLS protocol
-- TLS 1.1 and TLS 1.2 are supported. TLS 1.2 is recommended.
-- √
-- - Custom authorizers
-- 50
-- x
-- - - Plug-ins
-- 500
-- √
--- diff --git a/docs/apig/umn/apig_0080101651.html b/docs/apig/umn/apig_0080101651.html new file mode 100644 index 00000000..168f7989 --- /dev/null +++ b/docs/apig/umn/apig_0080101651.html @@ -0,0 +1,25 @@ + + +--Parent topic: Service Overview-What Is APIG?
++API Gateway (APIG) is your fully managed API hosting service. With APIG, you can build, manage, and deploy APIs at any scale to package your capabilities. With just a few clicks, you can integrate internal systems, monetize service capabilities, and selectively expose capabilities with minimal costs and risks. APIG helps you monetize service capabilities and reduce R&D investment, and enables you to focus on core enterprise services to improve operational efficiency.
++
- To monetize your capabilities (services and data), you can open them up by creating APIs in APIG. Then you can provide the APIs for API callers using offline channels.
- You can also obtain open APIs from APIG to reduce your development time and costs.
Figure 1 APIG architecture++Product Functions
+
- API lifecycle management
The lifecycle of an API involves creating, publishing, removing, and deleting the API. API lifecycle management enables you to quickly and efficiently expose service capabilities.
+- Built-in debugging tool
With the built-in debugging tool, you can debug APIs using different HTTP headers and request bodies. This tool simplifies the API development process and reduces the API development and maintenance costs.
+- Version management
An API can be published in different environments. Publishing an API again in the same environment will override the API's previous version. APIG displays the publication history (including the version, description, date and time, and environment) of each API. You can roll back an API to any historical version to meet dark launch and version upgrade requirements.
+- Environment variables
Environment variables are manageable and specific to environments. Variables of an API will be replaced by the values of the variables in the environment where the API will be published. You can create variables in different environments to call different backend services using the same API.
+- Refined request throttling
+
- For different service demands and user levels, you can control the frequency at which an API can be called by a user, app (credential), or IP address, ensuring that backend services can run stably.
- Configure different request throttling limits with API path, query, and header parameters.
- The throttling can be accurate to the second, minute, hour, or day.
- Set throttling limits for excluded applications (credentials) and tenants.
- Monitoring and alarms
APIG provides visualized, real-time API monitoring, and displays multiple metrics, including number of requests, invocation latency, and number of errors. The metrics help you understand the API usage, allowing you to identify potential service risks.
+- Security
+
- Domain name access can be authenticated with TLS 1.1 and TLS 1.2. mTLS two-way authentication is supported.
- Access control policies limit API access from specific IP addresses or accounts. You can blacklist or whitelist certain IP addresses and accounts to access your APIs.
- Circuit breaker policies protect your backend services through degradation if they are abnormal.
- Identity authentication can be based on AK/SK, function-based custom authorizers, and tokens. APIG verifies your backend services via certificates and is verified by your backend services through signature keys.
- VPC channels (load balance channels)
Virtual Private Cloud (VPC) channels (load balance channels) can be created for accessing resources in VPCs and exposing backend services deployed in VPCs. VPC channels balance API requests to backend services.
++
- Mock response
Mock backends simulate API responses for circuit breakers, service degradation, and redirection.
+++ diff --git a/docs/apig/umn/apig_0080101678.html b/docs/apig/umn/apig_0080101678.html new file mode 100644 index 00000000..cb0b7284 --- /dev/null +++ b/docs/apig/umn/apig_0080101678.html @@ -0,0 +1,136 @@ + + +++Parent topic: Service Overview+Creating an API
++Procedure:
+ ++Configuring Frontend Settings
+
- In the navigation pane, choose API Management > APIs.
- Click Create API > Create API and configure the frontend.
++++
Table 1 Frontend definition + + + Parameter
++ Description
++ + Name
++ API name. It is recommended that you enter a name based on naming rules to facilitate search.
++ + Group
++ By default, the group created in Creating an API Group is selected.
++ + URL
++ Method: Request method of the API. Set this parameter to POST.
+Protocol: Set this parameter to HTTPS.
+Subdomain name: The subdomain automatically allocated to the API group created in Creating an API Group.
+Path: Path for requesting the API.
++ + Gateway Response
++ Select a response to be displayed if API Gateway fails to process an API request.
+The default gateway response is default.
++ + Matching
++ By default, Exact match is selected.
++ + Tags
++ Classification attribute used to quickly identify the API from other APIs.
++ + + Description
++ Description of the API.
+- Configure security settings based on the following table.
+
++
Table 2 API request definition + + + Parameter
++ Description
++ + Authentication Mode
++ API authentication mode. Set this parameter to App.
++ + + Simple Authentication
++ If you enable this option, API Gateway verifies only the AppCode and the request signature does not need to be verified. For this example, enable simple authentication.
+- Click Next.
+Configuring Backend Settings
+
- On the Backend Configuration page, set the backend service information.
- Select a backend service type. For this example, select HTTP&HTTPS.
++++
Table 3 HTTP&HTTPS backend service definition + + + Parameter
++ Description
++ + Load Balance Channel
++ Determine whether the backend service will be accessed using a load balance channel. For this example, select Skip.
++ + URL
++ Method: Request method of the API. Set this parameter to POST.
+Protocol: Set this parameter to HTTP.
+Backend Address: Address of the backend service.
+Path: Path of the backend service.
++ + + Timeout
++ Backend service request timeout. Default value: 5000 ms.
+- On the Define Response page, set the responses.
++++
Table 4 Defining responses + + + Parameter
++ Description
++ + Example Success Response
++ An example of a response returned when the API is called successfully.
++ + + Example Failure Response
++ An example of a response returned when the API fails to be called.
+- Click Finish.
++ diff --git a/docs/apig/umn/apig_0084464485.html b/docs/apig/umn/apig_0084464485.html new file mode 100644 index 00000000..04697b1a --- /dev/null +++ b/docs/apig/umn/apig_0084464485.html @@ -0,0 +1,13 @@ + + +++Parent topic: Opening APIs+What Are the Relationships Between an API, Environment, and App (Credential)?
++An API can be published in different environments, such as RELEASE (online environment) and BETA (test environment).
+An app (credential) refers to the identity of an API caller. After you create an app (credential), the system automatically generates a key and secret for authenticating the app (credential). After an API is published and assigned to an app (credential), the owner of the app (credential) can call the API.
+After publishing an API in different environments, you can define different request throttling policies and authorize different apps (credentials) to call the API. For example, during the test process, API v2 is published in the BETA environment and authorized to test apps (credentials). API v1 is stable and can be authorized to all users or apps (credentials) in the RELEASE environment.
+++ diff --git a/docs/apig/umn/apig_0084464486.html b/docs/apig/umn/apig_0084464486.html new file mode 100644 index 00000000..4fdbcd6a --- /dev/null +++ b/docs/apig/umn/apig_0084464486.html @@ -0,0 +1,15 @@ + + +++Parent topic: Other FAQs+How Can I Use APIG?
++You can use APIG to manage and call APIs in the following ways:
++
- Management console, a web-based service management platform
If you have already registered an account, log in to the management console, click
+in the upper left corner, and choose APIG.
For details about the functions and operations of the APIG console, see the API Gateway User Guide.
+- Java, Go, Python, JavaScript, C#, PHP, C++, C, and Android SDKs
Download an SDK and use it to call APIs. For details, see the API Gateway Developer Guide.
+++ diff --git a/docs/apig/umn/apig_0087908599.html b/docs/apig/umn/apig_0087908599.html new file mode 100644 index 00000000..076153ad --- /dev/null +++ b/docs/apig/umn/apig_0087908599.html @@ -0,0 +1,48 @@ + + +++Parent topic: Other FAQs+What Are the Possible Causes If the Message "Backend unavailable" or "Backend timeout" Is Displayed?
++The following table lists the possible causes if a backend service fails to be invoked or the invocation times out.
+ +++
+ + + Possible Cause
++ Solution
++ + The backend service address is incorrect.
++ Change the backend service address in the API definition.
+If the domain name is used, ensure that the domain name can be correctly resolved to the IP address of the backend service.
++ + The timeout duration is incorrect.
+If a backend service fails to return a response within the configured timeout duration, APIG displays a message indicating that the backend service fails to be invoked.
++ Increase the backend timeout duration in the API definition.
++ + If the backend address is an ECS address, the security group to which the ECS belongs may block the request in the inbound or outbound direction.
++ Check the security group to which the ECS belongs and ensure that the inbound and outbound port rules and protocols of this security group are correct.
++ + The request protocol is incorrect. For example, the backend service uses HTTP, but HTTPS is selected on APIG.
++ Ensure that the protocol of the created API is the same as that of the backend service.
++ + + The backend service URL is unreachable.
++ Check the URL.
+++ diff --git a/docs/apig/umn/apig_02_0001.html b/docs/apig/umn/apig_02_0001.html new file mode 100644 index 00000000..3d4005b6 --- /dev/null +++ b/docs/apig/umn/apig_02_0001.html @@ -0,0 +1,20 @@ + + +++Parent topic: API Calling+Process Flow
++The following figure shows the process of exposing an API.
++
+
- Creating a Gateway +
- Creating an API Group
An API group facilitates management of APIs used for the same service. Create an API group and then create APIs.
+- Binding a Domain Name
Before making the API available for users to access, bind an independent domain name (custom domain name) to the group to which the API belongs. Then API callers can use these domain names to call the API.
+- Creating an API
When creating an API, configure the frontend and backend request paths, parameters, and protocols.
+- Debugging an API
Debug the API to check whether it works normally.
+- (Optional) Creating an Environment
An API can be called in different scenarios, such as the production environment (RELEASE) or other custom environments. RELEASE is the default environment defined in APIG.
+- Publishing an API
Publish the API so that it can be called.
+++ diff --git a/docs/apig/umn/apig_03_0001.html b/docs/apig/umn/apig_03_0001.html new file mode 100644 index 00000000..deb037f6 --- /dev/null +++ b/docs/apig/umn/apig_03_0001.html @@ -0,0 +1,43 @@ + + +++Parent topic: Opening APIs+Overview
++ diff --git a/docs/apig/umn/apig_03_0003.html b/docs/apig/umn/apig_03_0003.html new file mode 100644 index 00000000..5a500e81 --- /dev/null +++ b/docs/apig/umn/apig_03_0003.html @@ -0,0 +1,41 @@ + + +APIG is a fully managed service that enables you to securely build, manage, and deploy APIs at any scale with high performance and availability. With APIG, you can easily integrate your internal service systems and selectively expose and monetize your service capabilities.
++General Procedure
The following figure shows the procedure for using APIG to host APIs.
+Figure 1 APIG+You can expose your API services or obtain and call APIs of others through APIG.
++Exposing APIs
Enterprises or developers selectively expose and monetize their services and data through APIG.
+Figure 2 API exposing process++
- Create a gateway.
A gateway is an independent resource space where all operations are performed. Resources of different gateways are isolated from each other.
+- Create an API group.
Each API belongs to an API group. Create an API group before creating an API.
+- Bind a domain name.
Before exposing an API, bind an independent domain name to the target group so that API callers can access the API.
+You can debug the API using the debugging domain name allocated to the group to which the API belongs. The domain name can be accessed a maximum of 1000 times every day.
+- Create an API.
Encapsulate existing backend services into standard RESTful APIs and expose them to external systems.
+After creating an API, configure the following settings to control API access:
++
- Traditional policies
+
- Request throttling
Request throttling controls the number of times an API can be called within a time period to protect backend services.
+- Access control
Set a blacklist or whitelist to deny or allow API access from specific IP addresses or accounts.
+- Signature keys
Signature keys are used by backend services to verify the identity of APIG.
+- Plug-in policies
+
- CORS
This policy provides the capabilities of specifying preflight request headers and response headers and automatically creating preflight request APIs for cross-origin API access.
++
- HTTP Response Header Management
You can customize HTTP response headers that will be contained in an API response.
+- Request Throttling 2.0
This policy enables you to limit the number of times an API can be called within a specific time period. Parameter-based, basic, and excluded throttling is supported.
+- Kafka Log Push
This policy pushes API calling logs to Kafka so that users can easily obtain them.
+- Circuit Breaker
This policy protects your backend service when a performance issue occurs.
+- Third-Party Authorizer
You can configure your own service to authenticate API requests.
+- Debug the API.
Verify whether the API is working normally.
+- Publish the API.
The API can be called only after it has been published in an environment.
++Calling APIs
Enterprises and developers obtain and call APIs of other providers, thereby reducing development time and costs.
+Figure 3 API calling process++
- Obtain an API.
Obtain the API request information, including the domain name, protocol, method, path, and authentication mode.
+- Create a credential.
For an API that uses app authentication, create a credential to generate a credential ID and key/secret pair. Bind the credential to the API so that you can call the API through app authentication.
+- Obtain an SDK.
Use the SDK to generate a signature for the AK/SK and call the API.
+- Call the API.
Call the API using its access address and perform authentication based on its authentication mode.
+API Management
+ +++ diff --git a/docs/apig/umn/apig_03_0005.html b/docs/apig/umn/apig_03_0005.html new file mode 100644 index 00000000..276b3d96 --- /dev/null +++ b/docs/apig/umn/apig_03_0005.html @@ -0,0 +1,80 @@ + + ++
+- Creating an API Group
+
+- Importing a CCE Workload
+
+- Binding a Domain Name
+
+- Creating an Environment Variable
+
+- Creating a Gateway Response
+
+- Creating an API
+
+- Creating a gRPC API
+
+- Cloning an API
+
+- CORS
+
+- Debugging an API
+
+- Authorizing API Access
+
+- Publishing an API
+
+- Taking an API Offline
+
+- Importing and Exorting APIs
+
+- Viewing APIs
+
+- HTTP 2.0
+
+Creating an API Group
++An API group contains APIs used for the same service. You can manage APIs by group, and must create a group before creating an API.
+You can create an API group using the following methods:
++
- Creating an API Group Directly
You can create APIs for the group as required.
+- Importing an API Design File
Import an API file to create a group.
+- Importing a CCE Workload
By importing Cloud Container Engine (CCE) workloads, you can open up your CCE service capabilities. For details, see Importing a CCE Workload.
++![]()
+
- To make your APIs available for users to access, bind independent domain names to the group to which the APIs belong.
- Each API can belong to only one group.
- The system automatically allocates a subdomain name to each API group for internal testing. The subdomain name can be accessed 1000 times a day. You can also disable the Debugging Domain Name switch. When disabled, the debugging domain name is hidden and APIs cannot be called through it.
- API group DEFAULT is automatically generated for each gateway. APIs in this group can be called using the IP address of the Virtual Private Cloud (VPC) where the gateway is deployed.
+Prerequisites
You have created a gateway.
++Creating an API Group Directly
+
- Go to the APIG console.
- Select a dedicated gateway at the top of the navigation pane.
- Choose API Management > API Groups.
- Choose Create API group > Create Directly, and enter group information.
+
++
Table 1 Group information + + + Parameter
++ Description
++ + Name
++ API group name.
++ + + Description
++ Description of the API group.
+- Click OK.
+Importing an API Design File
- Go to the APIG console.
- Select a dedicated gateway at the top of the navigation pane.
+
- Choose API Management > API Groups.
- Choose Create API Group > Import API Design File.
- Select an API file and click Open.
- Set the import parameters.
+
++
Table 2 Parameters for importing APIs + + + Parameter
++ Description
++ + Import
++ Options:
++
- New group: Import APIs to a new API group. If you select this option, the system automatically creates an API group and imports the APIs into this group.
- Existing group: Import APIs to an existing API group. If you select this option, the system adds the APIs to the selected API group while retaining the existing APIs in the API group.
+ + API group
++ Select an API group if you set Import to Existing group.
++ + Basic Definition Overwrite
++ Determine whether to overwrite an existing API if the name of the API is the same as that of an imported API.
+This parameter is available only if you set Import to Existing group.
++ + + Extended Definition Overwrite
++ If this option is selected, the extended definition items (access control and request throttling policies) of an imported API will overwrite the existing policies with the same name.
+- (Optional) To configure the APIs, click Configure Global Settings. +
- Click Import Now, and determine whether to publish the APIs.
+
- Now: Publish the APIs in a specified environment now.
- Later: Publish the APIs later.
- Click OK. The APIs tab is displayed, showing the imported APIs.
+Follow-Up Operations
After an API group is created, bind independent domain names to it so that API callers can use them to call open APIs in the group.
+++ diff --git a/docs/apig/umn/apig_03_0006.html b/docs/apig/umn/apig_03_0006.html new file mode 100644 index 00000000..c5aca940 --- /dev/null +++ b/docs/apig/umn/apig_03_0006.html @@ -0,0 +1,58 @@ + + +++Parent topic: API Management+Binding a Domain Name
++Before you expose an API, bind an independent domain name to the API group so that APIs in the group can be accessed with the domain name. A maximum of five independent domain names can be added, and the number of access times is not limited.
+Independent domain names are classified into private and public domain names.
++
- Private domain name: Service systems deployed on the cloud service platform can use private domain names to access APIs.
- Public domain name: Service systems deployed outside the cloud service platform can use public domain names to access APIs.
For internal testing, use the debugging domain name (subdomain name) to access APIs in an API group (maximum 1,000 times a day). The debugging domain name cannot be modified.
++![]()
+
- Groups under the same gateway cannot be bound with a same independent domain name.
- By default, the debugging domain name of an API group can only be resolved to a server in the same VPC as the gateway. If you want to resolve the domain name to a public network, bind an EIP to the gateway.
- If the independent domain name you select is a wildcard domain name (for example, *.aaa.com), you can use any of its subdomain names (for example, default.aaa.com and 1.aaa.com) to access all APIs in the group to which the domain name is bound.
+Obtaining Domain Names
+
- To enable a service system on the cloud service platform to access APIs, obtain a private zone as an independent domain name.
+
- Apply for a private network domain name. For details, see Creating a Private Zone
- Configure an A record set to map the domain name to the APIC address. For details, see Adding an A Record Set
- If the API group contains HTTPS-compatible APIs, add an SSL certificate for the independent domain name bound to the group. Obtain the content and keys of the SSL certificate and create an SSL certificate in advance.
- To enable a service system outside the cloud service platform to access APIs, obtain a public zone as an independent domain name.
+
- Apply for a public zone from Domain Registration.
- Configure a CNAME record set for the API group subdomain name. For details, see Adding a CNAME Record Set.
- If the API group contains HTTPS-compatible APIs, add an SSL certificate for the independent domain name bound to the group. Obtain the content and keys of the SSL certificate and create an SSL certificate in advance.
+Procedure
+
- Go to the APIG console.
- Select a dedicated gateway at the top of the navigation pane.
- Choose API Management > API Groups.
- Click a group name.
- Click the Group Information tab.
- In the Independent Subdomain Names area, click Bind Independent Domain Name. Then configure the domain name information.
+
++
Table 1 Independent domain name configuration + + + Parameter
++ Description
++ + Domain Name
++ Domain name to be bound to the API group.
++ + Minimum TLS Version
++ The minimum TLS version that can be used to access the domain name. TLS 1.1 and TLS 1.2 (recommended) are supported.
+This parameter applies only to HTTPS and does not take effect for HTTP and other access modes. Configure HTTPS cipher suites using the ssl_ciphers parameter on the Parameters tab.
++ + + HTTP-to-HTTPS Auto Redirection
++ Whether to support HTTP-to-HTTPS redirection.
+Redirection takes effect only when the API request protocol is HTTPS or HTTP&HTTPS and an SSL certificate has been bound to the independent domain name.
+NOTE:+Redirection is only suitable for GET and HEAD requests. Redirecting other requests may cause data loss due to browser restrictions.
+- Click OK.
If the domain name is no longer needed, click Unbind Domain Name to unbind it from the API group.
+- (Optional) If the API group contains HTTPS APIs, bind an SSL certificate to the independent domain name.
- In the row that contains the domain name, click Select SSL Certificate.
+
- Select an SSL certificate and click OK.
+
- If a CA certificate has been uploaded for the SSL certificate, you can enable client authentication (HTTPS two-way authentication). Enabling or disabling client authentication will affect the existing services. Exercise caution when performing this operation.
- If no SSL certificate is available, click Create SSL Certificate to create one. For details, see SSL Certificates.
+Troubleshooting
+
- Failure in binding an independent domain name: It already exists or is not CNAMEd to the debugging domain name of the API group.
- Failure in binding an SSL certificate: The domain name used to generate the SSL certificate is different from the target independent domain name.
+Follow-Up Operations
After binding independent domain names to the API group, create APIs in the group to selectively expose backend capabilities. For details, see Creating an API.
+++ diff --git a/docs/apig/umn/apig_03_0007.html b/docs/apig/umn/apig_03_0007.html new file mode 100644 index 00000000..15c48641 --- /dev/null +++ b/docs/apig/umn/apig_03_0007.html @@ -0,0 +1,41 @@ + + +++Parent topic: API Management+Creating an Environment Variable
++You can define environment variables to allow an API to be called in different environments.
+Environment variables are manageable and specific to environments. You can add variables in different environments to call different backend services using the same API.
+For variables you define during API creation, you must create corresponding variables and values. For example, variable Path is defined for an API, and two variables with the same name are created and assigned values /Stage/test and /Stage/AA in environments 1 and 2, respectively. If the API is published and called in environment 1, the path /Stage/test is used. If the API is published and called in environment 2, the path /Stage/AA is used.
+Figure 1 Use of environment variables++Procedure
- Go to the APIG console.
- Select a dedicated gateway at the top of the navigation pane.
+
- Choose API Management > API Groups.
- Click a group name.
- Click the Group Information tab.
- In the Environment Variables area, select an environment. If no environment is available, click Create Environment to create one.
- Click Add Environment Variable and enter the variable information.
+![]()
Environment variable names and values will be displayed in plain text in API requests. Do not include sensitive information in the variable names and values.
+++++
Table 1 Adding an environment variable + + + Parameter
++ Description
++ + Name
++ Variable name. Ensure that the name is the same as the name of the variable defined for the API.
++ + + Value
++ The path to be used in the selected environment.
+- Click OK.
+Follow-Up Operations
After creating an environment variable, you can publish the API in the environment where the variable is located so that the API can be called.
+++ diff --git a/docs/apig/umn/apig_03_0008.html b/docs/apig/umn/apig_03_0008.html new file mode 100644 index 00000000..f32804fb --- /dev/null +++ b/docs/apig/umn/apig_03_0008.html @@ -0,0 +1,240 @@ + + +++Parent topic: API Management+Creating a Gateway Response
++A gateway response is displayed if APIG fails to process an API request. APIG provides a set of default responses and also allows you to create responses with custom status codes and content. The response content must be in JSON format.
+For example, the content of a default gateway response is as follows:
+{"error_code": "$context.error.code", "error_msg": "$context.error.message", "request_id": "$context.requestId"}+You can add a response with the following content:
+{"errorcode": "$context.error.code", "errormsg": "$context.error.message", "requestid": "$context.requestId","apiId":"$context.apiId"}+You can add more fields to or delete existing fields from the JSON body.
++![]()
+
- You can create a maximum of four gateway responses for each group.
- A maximum of 10 response headers can be customized. The key of a response header can contain 1 to 128 characters, including digits, letters, and underscores (_). The value can reference runtime variables (see Context Variables), but cannot contain double brackets ([[ or ]]).
- The type of a default or custom response cannot be modified, but the status code and content of the response can.
- The type of a gateway response cannot be changed. For details, see Response Types.
- Gateway responses can contain the API gateway context variables (starting with $context). For details, see Context Variables.
+Procedure
- Go to the APIG console.
- Select a dedicated gateway at the top of the navigation pane.
- Choose API Management > API Groups.
+
- Click a group name.
- Click the Group Information tab.
- In the Gateway Responses area, create or modify gateway responses.
To cancel modifications to a default response, click Restore Defaults in the upper right.
++Response Types
The following table lists the response types supported by APIG. You can define status codes to meet your service requirements.
+ +++
Table 1 Error response types supported by APIG + + + Response Name
++ Default Status Code
++ Description
++ + Access Denied
++ 403
++ Access denied. For example, the access control policy is triggered or an attack is detected.
++ + Authorizer Configuration Error
++ 500
++ A custom authorizer error has occurred. For example, communication failed or an error response was returned.
++ + Authorizer Failed
++ 500
++ The custom authorization failed.
++ + Incorrect Identity Source
++ 401
++ The identity source of the custom authorizer is missing or invalid.
++ + Third-Party Configuration Error
++ 500
++ A third-party authorizer error has occurred. For example, communication failed or an error response was returned.
++ + Third-Party Authorizer Failure
++ 401
++ The third-party authorizer returns an authentication failure.
++ + Incorrect Third-Party Identity Source
++ 401
++ The identity source of the third-party authorizer is missing.
++ + Authentication Failure
++ 401
++ IAM or app authentication failed.
++ + Identity Source Not Found
++ 401
++ No identity source has been specified.
++ + Backend Timeout
++ 504
++ Communication with the backend service timed out.
++ + Backend Unavailable
++ 502
++ The backend service is unavailable due to communication error.
++ + Default 4XX
++ -
++ Another 4XX error occurred.
++ + Default 5XX
++ -
++ Another 5XX error occurred.
++ + No API Found
++ 404
++ No API is found.
++ + Incorrect Request Parameters
++ 400
++ The request parameters are incorrect or the HTTP method is not supported.
++ + Request Throttled
++ 429
++ The request was rejected due to request throttling.
++ + + Unauthorized Credential
++ 401
++ The credential you are using has not been authorized to call the API.
++Context Variables
+++
Table 2 Variables that can be used in response message body + + + Variable
++ Description
++ + $context.apiId
++ API ID.
++ + $context.apiName
++ API name.
++ + $context.appId
++ ID of the credential that calls the API.
++ + $context.appName
++ Name of the credential that calls the API.
++ + $context.requestId
++ Request ID generated when the API is called.
++ + $context.stage
++ Deployment environment in which the API is called.
++ + $context.sourceIp
++ Source IP address of the API caller.
++ + $context.reqPath
++ API request path, excluding the query string.
++ + $context.reqUri
++ API request path, including the query string.
++ + $context.reqMethod
++ Request method.
++ + $context.authorizer.frontend.property
++ Values of the specified attribute–value pairs mapped to the context in the frontend custom authorizer response
++ + $context.authorizer.backend.property
++ Values of the specified attribute–value pairs mapped to the context in the backend custom authorizer response
++ + $context.error.message
++ Error message.
++ + $context.error.code
++ Error code.
++ + + $context.error.type
++ Error type.
+++ diff --git a/docs/apig/umn/apig_03_0010.html b/docs/apig/umn/apig_03_0010.html new file mode 100644 index 00000000..48b6861a --- /dev/null +++ b/docs/apig/umn/apig_03_0010.html @@ -0,0 +1,551 @@ + + +++Parent topic: API Management+Creating an API
++You can selectively expose your backends by configuring their APIs in APIG. To create an API, perform the following steps:
++
- Configuring Frontend Settings
Frontend definitions, security settings, and request parameters
+- Configuring Backend Settings
Default backend, backend policies, and responses
+- (Optional) Creating a Policy
Traditional and plug-in policies
++![]()
APIG uses a REST-based API architecture, so API opening and calling must comply with related RESTful API specifications.
++Prerequisites
+
- You have created an API group. If no API group is available, create one by referring to Creating an API Group.
- If the backend service needs to use a load balance channel, create a channel first.
- If you need to use a custom authorizer for API authentication, create one.
+Configuring Frontend Settings
- Go to the APIG console.
- Select a dedicated gateway at the top of the navigation pane.
+
- Choose API Management > API Groups.
- Click a group name.
- On the APIs tab, click Create API > Create API.
+
- Configure the frontend parameters described in the following table.
+ +![]()
The new API must have a different group, request method, request path, and matching mode from those of any existing API.
+++
Table 1 Frontend definition + + + Parameter
++ Description
++ + API Name
++ Enter an API name that conforms to specific rules to facilitate search.
++ + Group
++ The group to which the API belongs.
++ + URL
++ Frontend address, which consists of a method, protocol, subdomain name, and path.
++
- Method: Select GET, POST, DELETE, PUT, PATCH, HEAD, OPTIONS, or ANY. ANY indicates that the API can be called using any method.
- Protocol: Select HTTP, HTTPS, or HTTP&HTTPS. HTTPS is recommended for transmitting important or sensitive data.
APIG supports WebSocket data transmission. HTTP is equivalent to WebSocket (ws), and HTTPS is equivalent to WebSocket Secure (wss).
+- Subdomain Name: Debugging domain name of the group to which the API belongs.
- Path: Request path of the API. Enclose parameters in braces, if any. For example: /a/{b}. Alternatively, use a plus sign (+) to match paths starting with specific characters. For example: /a/{b+}. The request path is case-sensitive.
+ + Gateway Response
++ Displayed if an API request fails to be processed.
+APIG provides a set of default responses and also allows you to create new ones with custom status codes and content on the Group Information page. The response content must be in JSON format.
++ + Matching
++ Matching mode of the API request path.
++
- Exact match: The path in a request for the API must be the same as the value of Path.
- Prefix match: The path in a request for the API must be prefixed with the value of Path. You can define multiple paths in this mode.
For example, if you set Path to /test/AA and Matching to Prefix match, the API can be called using /test/AA/BB and /test/AA/CC but cannot be called using /test/AACC.
+NOTE:++
- If you set the matching mode to Prefix match, the characters of the API request path excluding the prefix are transparently transmitted to the backend.
For example, if you define the frontend and backend request paths of an API as /test/ and /test2/, respectively, and the API is called using /test/AA/CC, the characters AA/CC will be transparently transmitted to the backend. The request URL received by the backend is /test2/AA/CC/.
+- In prefix match mode, the path in a request preferentially matches the API with the longest path.
For example, assume that prefix match is enabled for two APIs whose paths are /test/AA and /test/AA/BB, respectively. The path /test/AA/BB/c in a request matches the API whose path is /test/AA/BB.
+- If there are two APIs with the same group, request method, and request path, the API with exact matching is first called.
+ + Tags
++ Attributes used to quickly identify the API from other APIs.
++ + Description
++ Description of the API.
++ + Request Body Format
++ Enable the parameter to specify a format for API requests. APIG will transmit API requests to the backend by using the selected format. The options include application/json, application/xml, text/plain, and multipart/form-data. The selected format must be supported by the backend service.
++ + Request Body Content
++ Enter the content of the request body in the API request to help API callers understand how to correctly encapsulate API requests.
++ + + Base64 Encoding
++ Enabled by default to Base64-encode the body of API requests for interacting with FunctionGraph. Base64 encoding works only when any of the following conditions is met:
++
- A custom authorizer is used.
- The backend type is FunctionGraph.
- A circuit breaker policy is bound, using FunctionGraph for backend downgrade.
You can disable Base64 encoding only when the content format is application/json.
+- Configure security settings based on the following table. +
++
Table 2 Security configuration + + + Parameter
++ Description
++ + Visibility
++ Determine whether the API is available to the public. Options:
++
- Public: The API can be released to KooGallery.
- Private: The API will be excluded when the API group to which it belongs is released on KooGallery.
+ + Authentication Mode
++ The following authentication modes are available:
++
- App: Requests for the API will be authenticated by APIG. App authentication is recommended.
- IAM: Requests for the API will be authenticated by Identity and Access Management (IAM).
- Custom: Requests for the API will be authenticated by using your own authentication system or service (for example, an OAuth-based authentication system).
- None: No authentication will be required.
API calling varies depending on the authentication mode. For details, see Calling APIs.
+NOTICE:++
- If you set the authentication mode to IAM or None, any APIG user can access the API, which can result in excessive charges if the API is bombarded with malicious requests.
- If you set the authentication mode to Custom, you can create a function in FunctionGraph to interconnect with your own authentication system or service. Ensure that FunctionGraph is available in the current region.
+ + Simple Authentication
++ This parameter is available only if you set Security Authentication to App.
+If you select app authentication, configure whether to enable simple authentication. In simple authentication, the X-Apig-AppCode parameter is added to the HTTP request header for quick response. APIG verifies only the AppCode and the request content does not need to be signed.
+Simple authentication supports HTTPS and gRPCS requests and does not support HTTP requests. For details, see Adding an AppCode for Simple Authentication.
+NOTE:+After you enable simple authentication for an existing API, you need to publish the API again. For details, see Publishing an API.
++ + Two-Factor Authentication
++ This parameter is available only if Authentication Mode is set to App or IAM.
+Determine whether to enable two-factor authentication for the API. If this option is enabled, API requests will be authenticated using a custom authorizer in addition to the app or IAM authentication you specify.
++ + Custom Authorizer
++ This parameter is mandatory only if Authentication Mode is set to Custom.
+If no custom authorizer is available, click Create Custom Authorizer to create one.
++ + + CORS
++ Determine whether to enable cross-origin resource sharing (CORS).
+CORS allows browsers to send XMLHttpRequest to servers in other domains, overcoming the limitation that Asynchronous JavaScript and XML (AJAX) can be used only within the same domain.
+There are two types of CORS requests:
++
- Simple requests: requests that have the Origin field in the header.
- Not-so-simple requests: HTTP requests sent before the actual request.
If CORS (not-so-simple request) is enabled for an API, another API that uses the OPTIONS method must be created. For details, see Enabling CORS.
+- (Optional) Define request parameters described in the following table. +
++
Table 3 Request parameter configuration + + + Parameter
++ Description
++ + Parameter Name
++ Request parameter name. The name of a path parameter will be automatically displayed in this column.
+NOTE:++
- The parameter name is case-insensitive. It cannot start with x-apig- or x-sdk-.
- The parameter name cannot be x-stage.
- If you set the parameter location to HEADER, ensure that the parameter name is not Authorization or X-Auth-Token and does not contain underscores (_).
+ + Parameter Type
++ Options: STRING and NUMBER.
+NOTE:+Set the type of Boolean parameters to STRING.
++ + Required
++ Determine whether the parameter is required in each request sent to call the API. If you select Yes, API requests that do not contain the parameter will be rejected.
++ + Passthrough
++ Determine whether to transparently transmit the parameter to the backend service.
++ + Enumerated Value
++ Enumerated value of the parameter. Use commas (,) to separate multiple enumerated values. The value of this parameter can only be one of the enumerated values.
++ + Default Value
++ The value that will be used if no value is specified for the parameter when the API is called. If the parameter is not specified in a request, APIG automatically sends the default value to the backend service.
++ + Value Restrictions
++ +
- Max. length/Max. value: If Parameter Type is set to STRING, set the maximum length of the parameter value. If Parameter Type is set to NUMBER, set the maximum parameter value.
- Min. length/Min. value: If Parameter Type is set to STRING, set the minimum length of the parameter value. If Parameter Type is set to NUMBER, set the minimum parameter value.
+ + Example
++ Example value for the parameter.
++ + + Description
++ Description of the parameter.
+- Click Next to proceed with Configuring Backend Settings.
+Configuring Backend Settings
APIG allows you to define multiple backend policies for different scenarios. Requests that meet specified conditions will be forwarded to the corresponding backend. For example, you can have certain requests to an API forwarded to a specific backend by specifying the source IP address in the policy conditions of the backend.
+You can define a maximum of five backend policies for an API in addition to the default backend.
++
- Define the default backend.
API requests that do not meet the conditions of any backend will be forwarded to the default backend.
+On the Backend Configuration page, select a backend type.
+APIG supports HTTP&HTTPS, FunctionGraph, and Mock backends. For details about the parameters required for defining each type of backend service, see Table 4, Table 5, and Table 6.
++ +![]()
+
- FunctionGraph backends can be set only if FunctionGraph has been deployed in the current environment.
- If the backend service is unavailable, use the Mock mode to return the expected result to the API caller for debugging and verification.
+ ++
Table 4 Parameters for defining an HTTP&HTTPS backend service + + + Parameter
++ Description
++ + Load Balance Channel
++ Determine whether to use a load balance channel to access the backend service. If you select Configure, ensure that you have created a load balance channel.
++ + URL
++ A URL consists of a method, protocol, load balance channel/backend address, and path.
++
- Method
Select GET, POST, DELETE, PUT, PATCH, HEAD, OPTIONS, or ANY. ANY indicates that all request methods are supported.
+- Protocol
HTTP or HTTPS. HTTPS is recommended for transmitting important or sensitive data.
+NOTE:++
- APIG supports WebSocket data transmission. HTTP is equivalent to WebSocket (ws), and HTTPS is equivalent to WebSocket Secure (wss).
- This protocol must be the one used by the backend service.
- Load Balance Channel (if applicable)
Select a load balance channel.
+NOTE:+To ensure a successful health check and service availability, configure the security groups of cloud servers in each channel to allow access from 100.125.0.0/16.
+- Backend Address (if applicable)
Set this parameter if no load balance channel is used.
+Enter the access address of the backend service in the format of Host:Port. Host indicates the IP address or domain name for accessing the backend service. If no port is specified, port 80 is used for HTTP by default, and port 443 is used for HTTPS by default.
+To use environment variables in the backend address, enclose the variables with number signs (#), for example, #ipaddress#. You can use multiple environment variables, for example, #ipaddress##test#.
+- Path
The request path (URI) of the backend service. Ensure that any parameters in the path are enclosed in braces ({}). For example, /getUserInfo/{userId}.
+If the path contains an environment variable, enclose the environment variable in number signs (#), for example, /#path#. You can use multiple environment variables, for example, /#path##request#.
++ + Host Header (if applicable)
++ Set this parameter only if a load balance channel is used.
+Define a host header for requests to be sent to cloud servers associated with the load balance channel. By default, the original host header in each request is used.
++ + Timeout (ms)
++ Backend request timeout. Range: 1–60,000 ms.
+If a backend timeout error occurs during API debugging, increase the timeout to locate the reason.
+NOTE:+If the current timeout does not meet your service requirements, modify the maximum timeout by referring to Configuring Parameters. The value range is 1 ms to 600,000 ms. After modifying the maximum timeout, also modify the timeout here.
++ + Retries
++ Number of attempts to retry requesting the backend service. Default: 0; range: –1 to 10.
++
- If the value is –1, the retry function is disabled. However, requests except for those using POST and PATCH will be retried once by default.
- If the value is within 0 to 10, the retry function is enabled, and requests will retry for the specified number of times. 0 indicates no retry attempts will be made.
If a load balance channel is used, the number of retries must be less than the number of enabled backend servers in the channel.
++ + Two-Way Authentication
++ Set this parameter only when Protocol is set to HTTPS.
+Determine whether to enable two-way authentication between APIG and the backend service. If you enable this option, configure the backend_client_certificate parameter on the Parameters page of the gateway.
++ + + Backend Authentication
++ Determine whether your backend service needs to authenticate API requests.
+If you enable this option, select a custom authorizer for backend authentication. Custom authorizers are functions that are created in FunctionGraph to implement an authentication logic or to invoke an authentication service.
+NOTE:+Backend authentication relies on FunctionGraph and is only available in certain regions.
++ ++
Table 5 Parameters for defining a FunctionGraph backend service + + + Parameter
++ Description
++ + Function Name
++ Automatically displayed when you select a function.
++ + Function URN
++ Identifier of the function.
+Click Select to specify a function.
++ + Version/Alias
++ Select a version or alias for your function. For details, see Version Management or Alias Management.
++ + Invocation Mode
++ +
- Synchronous: When receiving an invocation request, FunctionGraph immediately processes the request and returns a result. The client closes the connection once it has received a response from the backend.
- Asynchronous: The function invocation results of client requests do not matter to clients. When it receives a request, FunctionGraph queues the request, returns a response, and then processes requests one by one in idle state.
+ + Timeout (ms)
++ Timeout duration for APIG to request for the backend service. For details, see the description about backend timeout in Table 4.
++ + + Backend Authentication
++ For details, see the description about backend authentication in Table 4.
+++
Table 6 Parameters for defining a Mock backend service + + + Parameter
++ Description
++ + Status Code
++ Select the HTTP status code to be returned by the API.
++ + Response
++ You can use Mock for API development, debugging, and verification. It enables APIG to return a response without sending the request to the backend. This is useful if you need to test APIs when the backend is unavailable.
++ + Backend Authentication
++ For details, see the description about backend authentication in Table 4.
++ + + Add Header
++ Customize the response header parameters for the API.
+Click Add Header, and enter the parameter name, value, and description.
++![]()
+
- APIs whose URLs contain variables cannot be debugged on the API debugging page.
- For variables defined in URLs of APIs, corresponding environment variables and their values must be configured. Otherwise, the APIs cannot be published because there will be no values that can be assigned to the variables.
- The variable name is case-sensitive.
- (Optional) Configure backend parameters to map them to the request parameters defined in corresponding locations. If no request parameter is defined in 5.c, skip this step.
+
- In the Backend Parameters area, add parameters in either of the following ways:
+
- Click Import Request Parameter to synchronize all defined request parameters.
- Click Add Backend Parameter Mapping to add a backend parameter.
- Modify mappings (see Figure 1) based on the parameters and their locations in backend requests. +
+
- If the parameter location is set to PATH, the parameter name must be the same as that defined in the backend request path.
- The name and location of a request parameter can be different from those of the mapped backend parameter.
+![]()
+
- The parameter name is case-insensitive. It cannot start with x-apig- or x-sdk-.
- The parameter name cannot be x-stage.
- If you set the parameter location to HEADER, ensure that the parameter name does not start with an underscore (_).
- In the preceding figure, parameters test01 and test03 are located in the path and query positions of API requests, and their values will be received in the header of backend requests. test02 is located in the header of API requests, and its value will be received through test05 in the path of backend requests.
Assume that test01 is aaa, test02 is bbb, and test03 is ccc.
+The API request is as follows:
+curl -ik -H 'test02:bbb' -X GET https://example.com/v1.0/aaa?test03=ccc+Backend request:
+curl -ik -H 'test01:aaa' -H 'test03:ccc' -X GET https://example.com/v1.0/bbb+- (Optional) Configure constant parameters for the default backend to receive constants that are invisible to API callers. When sending a request to the backend service, APIG adds these parameters to the specified locations in the request and then sends the request to the backend service.
In the Constant Parameters area, click Add Constant Parameter.
++![]()
Constant parameters will be stored as plaintext. To prevent information leakage, do not contain sensitive information in these parameters.
+++++
Table 7 Constant parameter configuration + + + Parameter
++ Description
++ + Constant Parameter Name
++ If Parameter Location is set to PATH, the parameter name must be the same as that in Path.
+NOTE:++
- The parameter name is case-insensitive. It cannot be x-stage or start with x-apig- or x-sdk-
- If Parameter Location is set to HEADER, the parameter name is case-insensitive and cannot start with an underscore (_).
+ + Parameter Location
++ Specify the location of the constant parameter in backend service requests. The options include PATH, HEADER, and QUERY.
++ + Parameter Value
++ Value of the constant parameter.
++ + + Description
++ Description about the constant parameter.
++![]()
+
- APIG sends requests containing constant parameters to a backend service after percent-encoding of special parameter values. Ensure that the backend service supports percent-encoding. For example, parameter value [api] becomes %5Bapi%5D after percent-encoding.
- For values of path parameters, APIG percent-encodes the following characters: ASCII codes 0–31 and 127–255, spaces, and other special characters ?></%#"[\]^`{|}
- For values of query strings, APIG percent-encodes the following characters: ASCII codes 0–31 and 127–255, spaces, and other special characters >=<+&%#"[\]^`{|}
- (Optional) Configure system parameters for the default backend to receive default gateway parameters, frontend authentication parameters, and backend authentication parameters. When sending a request to the backend service, APIG adds these parameters to the specified locations in the request and then sends the request to the backend service.
+
- In the System Parameters area, click Add System Parameter. +
++
Table 8 System parameter configuration + + + Parameter
++ Description
++ + System Parameter Type
++ Options:
++
- Default gateway parameter: Parameters supported by APIG.
- Frontend authentication parameter: Parameters to be displayed in the frontend custom authentication result. This option is available only if you have set Authentication Mode to Custom or enabled Two-Factor Authentication in Configuring Frontend Settings.
- Backend authentication parameter: Parameters to be displayed in the backend custom authentication result. This option is available only if you have enabled backend authentication in Configuring Backend Settings.
+ + System Parameter Name
++ Name of the system parameter.
++
- If System Parameter Type is Default gateway parameter, select any of the following parameters.
+
- sourceIp: source IP address of an API caller
- stage: environment in which the API is called
- apiId: ID of the API
- appId: ID of the app that calls the API
- requestId: request ID generated when the API is called
- serverAddr: IP address of the gateway server
- serverName: name of the gateway server
- handleTime: processing time of the API request
- providerAppId: credential ID of the API provider
- apiName: name of the API. This parameter is available only after the API is published.
- appName: name of the credential used to call the API
+
- If System Parameter Type is Frontend authentication parameter or Backend authentication parameter, enter a parameter that has been defined for custom authentication results.
For details about how to create a custom authorizer function and obtain result parameters, see API Gateway Developer Guide.
++ + Backend Parameter Name
++ Name of a backend parameter to map the system parameter.
+NOTE:++
- The parameter name is case-insensitive. It cannot be x-stage or start with x-apig- or x-sdk-
- If Parameter Location is set to HEADER, the parameter name is case-insensitive and cannot start with an underscore (_).
+ + Backend Parameter Location
++ Specify the location of the backend parameter in backend service requests. The options include PATH, HEADER, and QUERY.
++ + + Description
++ Description about the system parameter.
+- (Optional) Add a backend policy.
You can add backend policies to forward requests to different backend services.
++
- Click
to add a backend policy.
- Set policy parameters described in Table 9. For details about other parameters, see Table 4, Table 5, and Table 6. +
+ ++
Table 9 Backend policy parameters + + + Parameter
++ Description
++ + Name
++ The backend policy name.
++ + Effective Mode
++ +
- Any condition met: The backend policy takes effect if any of the policy conditions has been met.
- All conditions met: The backend policy takes effect only when all the policy conditions have been met.
+ + + Policy Conditions
++ Conditions that must be met for the backend policy to take effect. Set conditions by referring to Table 10.
+++
Table 10 Policy condition configuration + + + Parameter
++ Description
++ + Source
++ +
- Source IP address: IP address from which the API is called
- Request parameter: a request parameter defined for the API
- Cookie: cookies of an API request
- System parameter - Default gateway parameter: a default gateway parameter used to define system runtime for the API
- System parameter - Frontend authentication parameter: displayed in the frontend custom authentication result This option is available only if you have set Authentication Mode to Custom or enabled Two-Factor Authentication in Configuring Frontend Settings.
NOTICE:++
- The request parameters (for example, headers) set as policy conditions must have already been defined for the API.
- If System parameter is not displayed, contact technical support to upgrade the gateway.
+ + Parameter Name
++ +
- When setting Source to Request parameter, select a request parameter.
- When setting Source to System parameter, select a system parameter.
+
- reqPath: Request URI, for example, /a/b/c.
- reqMethod: Request method, for example, GET.
- When setting Source to Cookie, enter the name of a cookie parameter.
+ + Parameter Location
++ The parameter location is displayed only if you set Source to Request parameter.
++ + Condition Type
++ This parameter is required only if you set Source to Request parameter, System parameter, or Cookie.
++
- Equal: The request parameter must be equal to the specified value.
- Enumerated: The request parameter must be equal to any of the enumerated values.
- Matching: The request parameter must be equal to any value of the regular expression.
NOTE:+When you set Source to System parameter and select a parameter named reqMethod, you can set the condition type only to Equal or Enumerated.
++ + + Condition Value
++ +
- If Condition Type is Equal, enter a value.
- If Condition Type is Enumerated, enter multiple values and separate them with commas (,).
- If Condition Type is Matching, enter a value range, for example, [0-5].
- If Source is Source IP address, enter one or more IP addresses and separate them with commas (,).
- If Source is System parameter - Frontend authentication parameter and the condition value is of the Boolean type, the parameter must be in lowercase.
- Defining responses.
In the Responses area, set the example responses. ++++
Table 11 Defining responses + + + Parameter
++ Description
++ + Example Success Response
++ The response to be returned when the API is called successfully.
++ + + Example Failure Response
++ The response to be returned when the API fails to be called.
+- Click Finish. You can view the API details on the APIs tab that is displayed.
+(Optional) Creating a Policy
You can create policies for the API after publishing it.
++
- On the APIs tab, click Create Policy.
- Select a policy type and set parameters.
+
- Select existing policy
- Create new policy (see Creating a Policy and Binding It to APIs)
- Click OK.
+FAQs About API Creation
Does APIG Support Multiple Backend Endpoints?
+What Are the Possible Causes If the Message "Backend unavailable" or "Backend timeout" Is Displayed?
+ ++Follow-Up Operations
After creating an API, verify it by following the procedure in Debugging an API.
+++ diff --git a/docs/apig/umn/apig_03_0011.html b/docs/apig/umn/apig_03_0011.html new file mode 100644 index 00000000..4a69a29c --- /dev/null +++ b/docs/apig/umn/apig_03_0011.html @@ -0,0 +1,148 @@ + + +++Parent topic: API Management+CORS
+++What Is CORS?
For security reasons, browsers restrict cross-origin requests initiated from within scripts. This means that a web application can only request resources from its origin. The CORS mechanism allows browsers to send XMLHttpRequest to servers in other domains and request access to the resources there.
+Figure 1 Process flow of the CORS mechanism+There are two types of CORS requests:
++
- Simple requests
Simple requests must meet the following conditions:++
- The request method is HEAD, GET, or POST.
- The request header contains only the following fields:
+
- Accept
- Accept-Language
- Content-Language
- Last-Event-ID
- Content-Type (application/x-www-form-urlencoded, multipart/form-data, or text/plain)
In the header of a simple request, browsers automatically add the Origin field to specify the origin (including the protocol, domain, and port) of the request. After receiving such a request, the target server determines whether the request is safe and can be accepted based on the origin. If the server sends a response containing the Access-Control-Allow-Origin field, the server accepts the request.
++
- Not-so-simple requests
Requests that do not meet the conditions for simple requests are not-so-simple requests.
+Before sending a not-so-simple request, browsers send an HTTP preflight request to the target server to confirm whether the origin the web page is loaded from is in the allowed origin list, and to confirm which HTTP request methods and header fields can be used. If the preflight request is successful, browsers send simple requests to the server.
++Configuring CORS
CORS is disabled by default. To enable CORS for an API, perform the operations described in this section. To customize request headers, request methods, and origins allowed for cross-domain access, create a CORS plug-in policy by referring to CORS.
++
- Simple CORS requests
When creating an API, enable CORS in the Security Configuration area of the Create API page. For more information, see Simple Request.
+ +- Not-so-simple CORS requests
+![]()
Not-so-simple CORS requests can be implemented in either of the following ways:
+Method 1: Create an API that uses the OPTIONS method for preflight. Follow this procedure to define the preflight request API. For details, see Not-So-Simple Request.
+Method 2: Configure a CORS policy and bind it to the API. For details, see CORS.
++
- In the Frontend Definition area, set the following parameters:
+
- Method: Select OPTIONS.
- Protocol: The same protocol used by the API with CORS enabled.
- Path: Enter a slash (/).
Figure 2 Defining the API request+- In the Security Configuration area, select None and enable CORS.
- Select the Mock backend type.
+Simple Request
When creating an API that will receive simple requests, enable CORS for the API.
+Scenario 1: If CORS is enabled and the response from the backend does not contain a CORS header, APIG handles requests from any domain, and returns the Access-Control-Allow-Origin header. For example:
+Request sent by a browser and containing the Origin header field:
+GET /simple HTTP/1.1 +Host: www.test.com +Origin: http://www.cors.com +Content-Type: application/x-www-form-urlencoded; charset=utf-8 +Accept: application/json +Date: Tue, 15 Jan 2019 01:25:52 GMT+Origin: This field is required to specify the origin (http://www.cors.com in this example) of the request. APIG and the backend service determine based on the origin whether the request is safe and can be accepted.
+Response sent by the backend service:
+HTTP/1.1 200 OK +Date: Tue, 15 Jan 2019 01:25:52 GMT +Content-Type: application/json +Content-Length: 16 +Server: api-gateway + +{"status":"200"}+Response sent by APIG:
+HTTP/1.1 200 OK +Date: Tue, 15 Jan 2019 01:25:52 GMT +Content-Type: application/json +Content-Length: 16 +Server: api-gateway +X-Request-Id: 454d689fa69847610b3ca486458fb08b +Access-Control-Allow-Origin: * + +{"status":"200"}+Access-Control-Allow-Origin: This field is required. The asterisk (*) means that APIG handles requests sent from any domain.
+Scenario 2: If CORS is enabled and the response from the backend contains a CORS header, the header will overwrite that added by APIG. The following messages are used as examples:
+Request sent by a browser and containing the Origin header field:
+GET /simple HTTP/1.1 +Host: www.test.com +Origin: http://www.cors.com +Content-Type: application/x-www-form-urlencoded; charset=utf-8 +Accept: application/json +Date: Tue, 15 Jan 2019 01:25:52 GMT+Origin: This field is required to specify the origin (http://www.cors.com in this example) of the request. APIG and the backend service determine based on the origin whether the request is safe and can be accepted.
+Response sent by the backend service:
+HTTP/1.1 200 OK +Date: Tue, 15 Jan 2019 01:25:52 GMT +Content-Type: application/json +Content-Length: 16 +Server: api-gateway +Access-Control-Allow-Origin: http://www.cors.com + +{"status":"200"}+Access-Control-Allow-Origin: Indicates that the backend service accepts requests sent from http://www.cors.com.
+Response sent by APIG:
+HTTP/1.1 200 OK +Date: Tue, 15 Jan 2019 01:25:52 GMT +Content-Type: application/json +Content-Length: 16 +Server: api-gateway +X-Request-Id: 454d689fa69847610b3ca486458fb08b +Access-Control-Allow-Origin: http://www.cors.com + +{"status":"200"}+The CORS header in the backend response overwrites that in APIG's response.
++Not-So-Simple Request
When creating an API that will receive not-so-simple requests, enable CORS for the API by following the instructions in Configuring CORS, and create another API that will be accessed using the OPTIONS method.
+The request parameters of an API accessed using the OPTIONS method must be set as follows:
++
- Group: The same group to which the API with CORS enabled belongs.
- Method: Select OPTIONS.
- Protocol: The same protocol used by the API with CORS enabled.
- Path: Enter a slash (/) or select the path that has been set for or matches the API with CORS enabled.
- Security Authentication: Select None. No authentication is required for requests received by the new API no matter which security authentication mode has been selected.
- CORS: Enable this option.
The following are example requests and responses sent to or from a mock backend.
+Request sent from a browser to an API that is accessed using the OPTIONS method:
+OPTIONS /HTTP/1.1 +User-Agent: curl/7.29.0 +Host: localhost +Accept: */* +Origin: http://www.cors.com +Access-Control-Request-Method: PUT +Access-Control-Request-Headers: X-Sdk-Date++
- Origin: This field is required to specify the origin from which the request has been sent.
- Access-Control-Request-Method: This field is required to specify the HTTP methods to be used by the subsequent simple requests.
- Access-Control-Request-Headers: This field is optional and used to specify the additional header fields in the subsequent simple requests.
Response sent by the backend: none
+Response sent by APIG:
+HTTP/1.1 200 OK +Date: Tue, 15 Jan 2019 02:38:48 GMT +Content-Type: application/json +Content-Length: 1036 +Server: api-gateway +X-Request-Id: c9b8926888c356d6a9581c5c10bb4d11 +Access-Control-Allow-Origin: * +Access-Control-Allow-Headers: X-Stage,X-Sdk-Date,X-Sdk-Nonce,X-Proxy-Signed-Headers,X-Sdk-Content-Sha256,X-Forwarded-For,Authorization,Content-Type,Accept,Accept-Ranges,Cache-Control,Range +Access-Control-Expose-Headers: X-Request-Id,X-Apig-Latency,X-Apig-Upstream-Latency,X-Apig-RateLimit-Api,X-Apig-RateLimit-User,X-Apig-RateLimit-App,X-Apig-RateLimit-Ip,X-Apig-RateLimit-Api-Allenv +Access-Control-Allow-Methods: GET,POST,PUT,DELETE,HEAD,OPTIONS,PATCH +Access-Control-Max-Age: 172800++
- Access-Control-Allow-Origin: This field is required. The asterisk (*) means that APIG handles requests sent from any domain.
- Access-Control-Allow-Headers: This field is required if it is contained in the request. It indicates all header fields that can be used during cross-origin access.
- Access-Control-Expose-Headers: This is the response header fields that can be viewed during cross-region access.
- Access-Control-Allow-Methods: This field is required to specify which HTTP request methods the APIG supports.
- Access-Control-Max-Age: This field is optional and used to specify the length of time (in seconds) during which the preflight result remains valid. No more preflight requests will be sent within the specified period.
Request sent by a browser and containing the Origin header field:
+PUT /simple HTTP/1.1 +Host: www.test.com +Origin: http://www.cors.com +Content-Type: application/x-www-form-urlencoded; charset=utf-8 +Accept: application/json +Date: Tue, 15 Jan 2019 01:25:52 GMT+Response sent by the backend:
+HTTP/1.1 200 OK +Date: Tue, 15 Jan 2019 01:25:52 GMT +Content-Type: application/json +Content-Length: 16 +Server: api-gateway + +{"status":"200"}+Response sent by APIG:
+HTTP/1.1 200 OK +Date: Tue, 15 Jan 2019 01:25:52 GMT +Content-Type: application/json +Content-Length: 16 +Server: api-gateway +X-Request-Id: 454d689fa69847610b3ca486458fb08b +Access-Control-Allow-Origin: * + +{"status":"200"}+ +++ diff --git a/docs/apig/umn/apig_03_0012.html b/docs/apig/umn/apig_03_0012.html new file mode 100644 index 00000000..3271a458 --- /dev/null +++ b/docs/apig/umn/apig_03_0012.html @@ -0,0 +1,25 @@ + + +++Parent topic: API Management+Debugging an API
++After creating an API, debug it on the APIG console by setting HTTP headers and body to verify whether the API is running normally.
++![]()
+
- APIs with backend request paths containing variables cannot be debugged.
- If a plug-in or traditional policy is bound to an API, the policy does not take effect during API debugging.
- The maximum backend timeout is 60s for API debugging.
+Prerequisites
You have set up the backend service of the API.
++Procedure
- Go to the APIG console.
- Select a dedicated gateway at the top of the navigation pane.
+
- Choose API Management > API Groups.
- Click a group name.
- On the APIs tab, select the target API and click Debug.
- Configure the URL and request parameters of the API.
Select a request method, protocol, and domain name, and set request parameters.
+Select the debugging or an independent domain name. If you select a wildcard domain name, specify the subdomain name.
++![]()
If the independent domain name you select is a wildcard domain name, you can use any of its subdomain names to access all APIs in the group to which the domain name is bound.
+For example, if a wildcard domain name is *.aaa.com, the subdomain name can be default.aaa.com or 1.aaa.com.
+- Click Debug.
- The box on the lower right displays the response of the API request.
+
- If the debugging is successful, an HTTP status code starting with 2 and response details are displayed.
- If the request fails to be sent, an HTTP status code 4xx or 5xx is displayed. For details, see Error Codes.
- You can send more requests with different parameters and values to verify the API.
+Follow-Up Operations
After the API is successfully debugged, publish the API in a specific environment so that the API can be called by users. To ensure security, create policies for the API.
+++ diff --git a/docs/apig/umn/apig_03_0013.html b/docs/apig/umn/apig_03_0013.html new file mode 100644 index 00000000..088d7743 --- /dev/null +++ b/docs/apig/umn/apig_03_0013.html @@ -0,0 +1,20 @@ + + +++Parent topic: API Management+Authorizing API Access
++APIs using app authentication can only be called by credentials that have been authorized to call them.
++![]()
+
- You can authorize credentials only to call APIs that use app authentication.
- A credential can be authorized to access a maximum of 1000 APIs.
+Prerequisites
+
- You have published an API.
- You have created an environment.
- You have created a credential.
+Procedure
- Go to the APIG console.
- Select a dedicated gateway at the top of the navigation pane.
+
- Choose API Management > API Groups.
- Click a group name.
- On the APIs tab, select the target API and choose More > Authorize Credentials.
- Click Select Credentials.
- Select an environment, search for and select desired credentials, and click OK. The authorized credentials are displayed on the Authorize Credentials page.
To cancel the authorization of a credential, click Cancel Authorization in the Operation column that contains the credential.
++Follow-Up Operations
After you authorize a credential for an API, the API can be called by the credential using SDKs of different programming languages.
+++ diff --git a/docs/apig/umn/apig_03_0014.html b/docs/apig/umn/apig_03_0014.html new file mode 100644 index 00000000..762ed2ce --- /dev/null +++ b/docs/apig/umn/apig_03_0014.html @@ -0,0 +1,30 @@ + + +++Parent topic: API Management+Publishing an API
++APIs can be called only after they have been published in an environment. You can publish APIs in different environments. APIG allows you to view the publication history (such as the version, description, time, and environment) of each API, and supports rollback of APIs to different historical versions.
++![]()
+
- If you modify a published API, you must publish it again for the modifications to take effect in the environment in which the API has been published.
- A maximum of 10 publication records of an API are retained in an environment.
+Prerequisites
You have created an environment.
++Publishing an API
- Go to the APIG console.
- Select a dedicated gateway at the top of the navigation pane.
+
- Choose API Management > API Groups.
- Click a group name.
- On the APIs tab, select the target API and click Publish Latest Version.
- Select the environment where the API will be published, and enter a description.
+![]()
+
- If the API has already been published in the environment, publishing it again will overwrite its definition in that environment.
- If there is no environment that meets your requirements, create a new one.
- Click OK. After the API is published, the red exclamation mark (!) in the upper left corner of the Publish Latest Version button disappears.
You can remove APIs from the environments where they have been published. This operation will cause the APIs to be inaccessible in the environments. Ensure that you have notified users before this operation. To remove an API, click Take Offline.
++ +Viewing Publication History
+
- On the APIs tab, select the target API.
- Choose More > View Publishing Records.
- Click View Details in the Operation column of a version.
The View Details dialog box displays the basic information, frontend and backend request information, input and constant parameters, parameter mappings, and example responses of the API.
+- To roll back the API to a historical version, click Switch Version in the row containing the target version, and click Yes.
If "current version" is displayed next to the target version, the rollback was successful.
+When the API is called, configuration of the current version is used instead of the previously saved configuration.
+For example, an API was published in the RELEASE environment on August 1, 2018. On August 20, 2018, the API was published in the same environment after modification. If the version published on August 1 is set as the current version, configuration of this version will be used when the API is called.
+++ diff --git a/docs/apig/umn/apig_03_0015.html b/docs/apig/umn/apig_03_0015.html new file mode 100644 index 00000000..6b7739cb --- /dev/null +++ b/docs/apig/umn/apig_03_0015.html @@ -0,0 +1,59 @@ + + +++Parent topic: API Management+Exporting APIs
++You can export APIs one by one or in batches as JSON, YAML, or YML files.
++Procedure
- Go to the APIG console.
- Select a dedicated gateway at the top of the navigation pane.
+
- In the navigation pane, choose API Management > API Groups. Click a group name and click Export.
Or choose API Management > APIs, and click Export APIs.
+- Set the export parameters.
+
++
Table 1 Parameters for exporting APIs + + + Parameter
++ Description
++ + API Group
++ Select the group of which APIs will be exported.
++ + Environment
++ Select the environment where the APIs to be exported have been published.
++ + APIs
++ By default, all APIs in the group that have been published in the selected environment are exported. To export only specific APIs, click Select APIs, and specify the APIs you want to export.
++ + API Definition
++ +
- Basic: The basic definition of an API is composed of the request and response definitions. It does not include the backend definition. The request definition includes both standard and extended Swagger fields. This function can generate a Swagger or OpenAPI API definition file.
- Full: The full definition of an API is composed of the request, backend, and response definitions. This function can be used to back up the full definition of an API as a Swagger or OpenAPI file.
- Extended: The extended definition of an API is composed of the request, backend, and response definitions as well as the request throttling policy, access control policy, and other configurations of the API.
+ + Format
++ Select JSON, YAML, or YML.
++ + Version
++ Set the version of the APIs to be exported. If you do not specify a version, the version will be set as the current date and time.
++ + + OpenAPI Version
++ Export Swagger 2.0 or OpenAPI 3.0 APIs.
+- Click Export. The export result is displayed on the right of the page and the API file is automatically downloaded.
++ diff --git a/docs/apig/umn/apig_03_0016.html b/docs/apig/umn/apig_03_0016.html new file mode 100644 index 00000000..af105941 --- /dev/null +++ b/docs/apig/umn/apig_03_0016.html @@ -0,0 +1,13 @@ + + +++Parent topic: Importing and Exorting APIs+Viewing APIs
++The APIs page displays all APIs of the current gateway, including the URL, running environment, and authentication mode.
++Procedure
- Go to the APIG console.
- Select a dedicated gateway at the top of the navigation pane.
- Modify, publish, and debug APIs of the gateway.
+
- In the navigation pane, choose API Management > APIs.
- Click an API name to go to the details page of the group to which the API belongs. For details about how to create an API, manage domain names, and set environment variables, see the preceding sections.
++ diff --git a/docs/apig/umn/apig_03_0017.html b/docs/apig/umn/apig_03_0017.html new file mode 100644 index 00000000..d30e03e6 --- /dev/null +++ b/docs/apig/umn/apig_03_0017.html @@ -0,0 +1,37 @@ + + +++Parent topic: API Management+API Policies
+ +++ diff --git a/docs/apig/umn/apig_03_0019.html b/docs/apig/umn/apig_03_0019.html new file mode 100644 index 00000000..b8045835 --- /dev/null +++ b/docs/apig/umn/apig_03_0019.html @@ -0,0 +1,62 @@ + + ++
+- Creating a Policy and Binding It to APIs
+
+- CORS
+
+- HTTP Response Header Management
+
+- Request Throttling 2.0
+
+- Kafka Log Push
+
+- Circuit Breaker
+
+- Third-Party Authorizer
+
+- Request Throttling
+
+- Access Control
+
+- Signature Keys
+
+- Custom Authorizers
+
+- SSL Certificates
+
+- Load Balance Channels
+
+- Managing Environments
+
+Creating a Policy and Binding It to APIs
++APIG provides flexible API control policies.
++![]()
Policy parameters will be stored as plaintext. To prevent information leakage, do not contain sensitive information in these parameters.
++Guidelines
+
- An API can be bound with only one policy of the same type.
- Policies are independent of APIs. A policy takes effect for an API only after they are bound to each other. When binding a policy to an API, you must specify an environment where the API has been published. The policy takes effect for the API only in the specified environment.
- After you bind a policy to an API, unbind the policy from the API, or update the policy, you do not need to publish the API again.
- Taking an API offline does not affect the policies bound to it. The policies are still bound to the API if the API is published again.
- Policies that have been bound to APIs cannot be deleted.
+Creating a Policy
- Go to the APIG console.
- Select a dedicated gateway at the top of the navigation pane.
+
- In the navigation pane, choose API Management > API Policies.
- On the Policies tab, click Create Policy.
- Click the desired policy type.
+
- Plug-in policies
Set the policy information. ++++
Table 1 Policy configuration + + + Parameter
++ Description
++ + Name
++ Enter a policy name that conforms to specific rules to facilitate search.
++ + Type
++ Type of the policy, which determines the extension capabilities.
+NOTE:+If a policy type is not supported by your gateway, contact technical support to upgrade the gateway to the latest version.
++
- CORS: Provides the capabilities of specifying preflight request headers and response headers and automatically creating preflight request APIs for cross-origin API access.
- HTTP Response Header Management: Enables you to customize HTTP response headers that will be displayed in an API response.
- Request Throttling 2.0: Limits the number of times that an API can be called within a specific time period. Parameter-based, basic, and excluded throttling is supported.
- Kafka Log Push: Pushes API calling logs to Kafka so that you can view these logs.
- Circuit Breaker: Protects your backend service when a performance issue occurs.
- Third-Party Authorizer: Authenticates API requests with your own service.
+ + Description
++ Description about the plug-in.
++ + + Policy Content
++ Content of the plug-in, which can be configured in a form or using a script.
+The plug-in content varies depending on the plug-in type:
+ +- Traditional policies
The policy content varies depending on the policy type:
+ +- Click OK.
+
- To clone this policy, click Clone in the Operation column.
+![]()
+
- The name of a cloned policy cannot be the same as that of any existing policy.
- Request throttling and signature key policies cannot be cloned.
- After the policy is created, perform the operations described in Binding the Policy to APIs for the policy to take effect for the API.
+Binding the Policy to APIs
+
- Click a policy name to go to the policy details page.
- In the APIs area, select an environment and click Select APIs.
- Select the API group, environment, and required APIs.
- Click OK.
+
- If an API no longer needs this policy, click Unbind in the row that contains the API.
- If there are multiple APIs that no longer need this policy, select these APIs, and click Unbind above the API list. You can unbind a policy from a maximum of 1000 APIs at a time.
++ diff --git a/docs/apig/umn/apig_03_0021.html b/docs/apig/umn/apig_03_0021.html new file mode 100644 index 00000000..ddf219e9 --- /dev/null +++ b/docs/apig/umn/apig_03_0021.html @@ -0,0 +1,72 @@ + + +++Parent topic: API Policies+CORS
++For security purposes, the browser restricts cross-domain requests from being initiated from a page script. In this case, the page can access only the resources from the current domain. CORS allows the browser to send XMLHttpRequest to the server in a different domain. For details about CORS, see CORS.
+The CORS plug-in provides the capabilities of specifying preflight request headers and response headers and automatically creating preflight request APIs for cross-origin API access.
++![]()
If your gateway does not support this policy, contact technical support to upgrade the gateway to the latest version.
++Usage Guidelines
+
- You have understood the Guidelines for Using Plug-ins.
- APIs with the same request path in an API group can only be bound with the same CORS plug-in policy.
- If you have enabled CORS for an API and have also bound the CORS plug-in to the API, the CORS plug-in will be used.
- You cannot bind the CORS plug-in to APIs with the same request path as another API that uses the OPTIONS method.
- When you bind a plug-in policy to an API (see Binding the Policy to APIs), ensure that the request method of the API is included in allow_methods.
+Configuration Parameters
+++
Table 1 Configuration parameters + + + Parameter
++ Description
++ + Allowed Origins
++ Access-Control-Allow-Origin response header, which specifies either a single origin, which tells browsers to allow that origin to access an API; or else — for requests without credentials — the "*" wildcard, to tell browsers to allow any origin to access the API. Separate multiple URIs using commas.
++ + Allowed Methods
++ Access-Control-Allow-Methods response header, which specifies the HTTP methods allowed when accessing the API. Separate multiple methods using commas.
++ + Allowed Headers
++ Access-Control-Allow-Headers response header, which specifies request headers that can be used when making an XMLHttpRequest. Separate multiple headers using commas.
+By default, simple request headers Accept, Accept-Language, Content-Language, and Content-Type (only if the value is application/x-www-form-urlencoded, multipart/form-data, or text/plain) are carried in requests. You do not need to configure these headers in this parameter.
+NOTE:++
- When you create a CORS policy, Allowed Headers is blank by default, which means cross-domain requests cannot carry any custom headers.
- Setting Allowed Headers to an asterisk (*) means cross-domain requests can carry any custom headers.
+ + Exposed Headers
++ Access-Control-Expose-Headers response header, which specifies which response headers can be contained in the response of XMLHttpRequest. Separate multiple headers using commas.
+By default, basic response headers Cache-Control, Content-Language, Content-Type, Expires, Last-Modified, and Pragma can be contained in the response. You do not need to configure these headers in this parameter.
+NOTE:++
- When you create a CORS policy, Exposed Headers is blank by default, which means the JavaScript code of a browser cannot parse the headers in a cross-domain access response. However, the following basic response headers obtained using the getResponseHeader() method of the XMLHttpRequest object are excluded: Cache-Control, Content-Language, Content-Type, Expires, Last-Modified, and Pragma.
- Setting Exposed Headers to an asterisk (*) means the JavaScript code of a browser can parse all the headers in a cross-domain access response.
+ + Maximum Age
++ Access-Control-Max-Age response header, which specifies for how many seconds the results of a preflight request can be cached. No more preflight requests will be sent within the specified period.
++ + + Allowed Credentials
++ Access-Control-Allow-Credentials response header, which specifies whether XMLHttpRequest requests can carry cookies.
++Example Script
{ + "allow_origin": "*", + "allow_methods": "GET,POST,PUT", + "allow_headers": "Content-Type,Accept,Accept-Ranges,Cache-Control", + "expose_headers": "X-Request-Id,X-Apig-Latency", + "max_age": 86400, + "allow_credentials": true +}+++ diff --git a/docs/apig/umn/apig_03_0022.html b/docs/apig/umn/apig_03_0022.html new file mode 100644 index 00000000..2d73190b --- /dev/null +++ b/docs/apig/umn/apig_03_0022.html @@ -0,0 +1,67 @@ + + +++Parent topic: API Policies+HTTP Response Header Management
++HTTP response headers are part of the response returned by APIG to a client that calls an API. You can customize HTTP response headers that will be contained in an API response.
++![]()
If your gateway does not support this policy, contact technical support to upgrade the gateway to the latest version.
++Usage Guidelines
+
- You have understood the guidelines for policy creation and API binding.
- You cannot modify the response headers (including x-apig-* and x-request-id) added by APIG or the headers required for CORS.
+Configuration Parameters
+++
Table 1 Configuration parameters + + + Parameter
++ Description
++ + Name
++ Response header name, which is case-insensitive and must be unique within a plug-in. You can add a maximum of 10 response headers.
++ + Value
++ Value of the response header. This parameter does not take effect and can be left blank if you set Action to Delete.
++ + + Action
++ Response header operation. You can override, append, delete, skip, or add response headers.
+Override
++
- The value of this response header will override the value of the same response header that exists in an API response.
- If an API response contains multiple response headers with the same name, only the value of this response header will be returned.
- If there is no response header with the same name in an API response, the value of this response header will be returned.
Append
++
- If an API response contains the specified header, the value you set here will be added, following the existing value. The two values will be separated with commas (,).
+
- If an API response contains multiple response headers with the same name, values of these response headers will be returned and separated with commas (,), appended by the value of this response header.
- If there is no response header with the same name in an API response, the value of this response header will be returned.
Delete
++
- This response header will be deleted if a response header with the same name exists in an API response.
- If an API response contains multiple response headers with the same name, all these response headers will be deleted.
Skip
++
- This response header will be skipped if a response header with the same name exists in an API response.
- If an API response contains multiple response headers with the same name, values of all these response headers will be returned.
- If there is no response header with the same name in an API response, the value of this response header will be returned.
Add
+The value of this response header will be returned in an API response even if the response contains a response header with the same name.
++Example Script
{ + "response_headers": [ + { + "name": "test", + "value": "test", + "action": "append" + }, + { + "name": "test1", + "value": "test1", + "action": "override" + } + ] +}+++ diff --git a/docs/apig/umn/apig_03_0023.html b/docs/apig/umn/apig_03_0023.html new file mode 100644 index 00000000..fb188572 --- /dev/null +++ b/docs/apig/umn/apig_03_0023.html @@ -0,0 +1,200 @@ + + +++Parent topic: API Policies+Circuit Breaker
++Circuit breaker policies protect your backend services when a performance issue occurs. If the backend service of an API times out for N consecutive times or if the latency is long, the downgrade mechanism of a circuit breaker policy is triggered to return an error to the API caller or forward requests to a specified backend. After the backend service recovers, the circuit breaker closes and requests become normal.
++![]()
If your gateway does not support this policy, contact technical support to upgrade the gateway to the latest version.
++Prerequisites
You have understood the guidelines for policy creation and API binding.
++Parameter Description
+++
Table 1 Parameter description + + + Parameter
++ Description
++ + Policy Type
++ ++ + Circuit Breaker Type
++ Triggering type of the circuit breaker.
++
- Timeout downgrade: The circuit breaker will be triggered upon backend timeout.
- Condition downgrade: The circuit breaker will be triggered when configured match conditions are met.
+ + Condition Type
++ Triggering mode of the circuit breaker.
++
- Count: Once the number of requests that meet conditions within a specified time window reaches the threshold, the circuit breaker is immediately triggered.
- Percentage: Once the percentage of requests that meet conditions within a specified time window reaches the threshold, the circuit breaker is triggered after the time window expires.
+ + Match Condition
++ This parameter is required only when Circuit Breaker Type is set to Condition downgrade.
+Configure triggering conditions for the circuit breaker.
++
- Response Error Codes: The circuit breaker will be triggered if the backend responds with specified status codes.
- Response Latency: The circuit breaker will be triggered if the backend response latency reached a specified threshold.
+ + Time Window (s)
++ The period for determining how many times have the conditions been met. Use this parameter together with Threshold or Min Percentage. If the threshold or percentage is reached, the circuit breaker is triggered.
++ + Threshold
++ This parameter is required only when Condition Type is set to Count.
+Set the threshold for triggering the circuit breaker. Use this parameter together with Time Window. Once the number of backend requests that meet the conditions within the time window reaches the threshold, the circuit breaker is triggered.
+NOTE:+A circuit breaker policy is triggered for a single gateway component. If your gateway has multiple components, the triggering for each component is determined separately.
+If the threshold is reached within the time window for a gateway component, requests sent to the component trigger the circuit breaker, and other gateway components still forward requests normally.
+A gateway component is a connection address of your gateway. To view the number of gateway components, go to the Gateway Information page of the gateway and view the number of IP addresses in Private Network Access IP.
++ + Min Calls
++ This parameter is required only when Condition Type is set to Percentage.
+Set the minimum number of API calls that will trigger the circuit breaker within the time period. The circuit breaker will not be triggered if the number of API calls within the time period is less than this value.
++ + Min Percentage (%)
++ This parameter is required only when Condition Type is set to Percentage.
+Set the threshold for triggering the circuit breaker. Use this parameter together with Time Window. Once the percentage of backend requests that meet the conditions within the time window reaches the threshold, the circuit breaker is triggered.
++ + Control Duration (s)
++ Time for which the circuit breaker will be on. When the time is reached, the circuit breaker will be off.
++ + Backend Downgrade
++ Determine whether to enable backend downgrade.
++
- Enable: Requests for APIs that have triggered a downgrade will be forwarded to a specified backend.
- Disable: Requests for APIs that have triggered a downgrade will not be forwarded to any backend. Instead, HTTP status code 503 and an error message indicating that the service is unavailable will be returned.
+ + Backend Type
++ This parameter is required only when Backend Downgrade is enabled.
+Specify the backend type to which requests will be forwarded when the circuit breaker is on.
++
- Mock: The defined response will be returned.
+
- Status Code: the status code to be included in the response
- Response: the response body, which is in JSON format
- Response Header: header parameters to be included in the response
- HTTP&HTTPS: Backend requests will be forwarded to a specified HTTP&HTTPS backend service.
+
- Load Balance Channel: Determine whether to use a load balance channel to access the backend service. If yes, create a load balance channel in advance.
- Backend URL: address of the backend service to forward requests to.
- Timeout (ms): backend request timeout. The default value is 5000 ms.
- FunctionGraph: Backend requests will be forwarded to a specified function.
+
- Function URN: the unique identifier of a function. Click Select to select a function.
- Function Name: automatically displayed after you select a function.
- Version/Alias: version or alias of the function to be used to receive backend requests.
- Invocation Mode: the mode in which the function is invoked.
Synchronous: When receiving an invocation request, FunctionGraph immediately processes the request and returns a result. The client closes the connection once it has received a response from the backend.
+Asynchronous: After receiving an invocation request, FunctionGraph queues the request and returns the result after the request is successfully processed. The server processes the queuing requests one by one when it is idle. The client does not care about the invocation result.
+- Timeout (ms): backend request timeout. The default value is 5000 ms.
- Passthrough: Backend requests will be forwarded to the original API backend.
To add header parameters to backend requests, click Add Parameter.
++ + Downgrade Parameter Settings
++ Determine whether to enable downgrade parameter configuration. After this option is enabled, custom rules take precedence over the default triggering conditions and downgrade settings configured above.
++
- If a custom rule is matched, the triggering conditions and downgrade settings defined in the rule are applied. If the matched custom rule contains no triggering condition or downgrade settings, the default settings in Trigger Configuration and Backend Downgrade will be applied.
- If no custom rule is matched, the default settings will be applied.
+ + Parameters
++ Define parameters for rule matching.
++
- Parameter Location: position of a parameter in API requests.
- Parameter Name: name of a parameter used for rule matching.
By default, the system provides the reqPath (request path) and method (request method) parameters. Click Add Parameter to add parameters.
++ + + Rules
++ Customize matching rules for the circuit breaker. Click Add Rule to add rules. The system matches rules from top to bottom. Adjust the rule priority by moving the rules up or down.
++
- Conditions: Click
to set condition expressions. If there are three or more expressions, you can layer them by clicking Set Lower Level.
+
- =: equal to
- !=: not equal to
- pattern: regular expression
- enum: enumerated values. Separate them with commas (,).
- For details about how to configure the triggering conditions and backend downgrade, see the instructions for the default settings above.
Example: You have enabled Downgrade Parameter Settings and added rules rule01 and rule02 in sequence. And you have disabled Trigger Configuration and enabled Backend Downgrade for rule01, and have enabled both options for rule02. With these settings, the circuit breaker first checks whether the conditions of rule01 are met. If yes, the circuit breaker is turned on based on the default settings because no triggering condition has been defined in rule01, and backend downgrade configured in rule01 is executed. If no, the check is continued for rule02.
++Example Script
{ + "breaker_condition":{ + "breaker_type":"timeout", + "breaker_mode":"counter", + "unhealthy_threshold":30, + "time_window":15, + "open_breaker_time":15, + "unhealthy_percentage":51, + "min_call_threshold":20 + }, + "scope":"share", + "downgrade_default":{ + "type":"http", + "passthrough_infos":null, + "func_info":null, + "mock_info":null, + "http_info":{ + "isVpc":false, + "vpc_channel_id":"", + "address":"10.10.10.10", + "scheme":"HTTP", + "method":"GET", + "path":"/demo", + "timeout":5000 + }, + "http_vpc_info":null + }, + "downgrade_parameters":[ + { + "name":"reqPath", + "type":"path", + "value":"path", + "disabled":true, + "focused":true, + "id":"92002eqbpilg6g" + }, + { + "name":"method", + "type":"method", + "value":"method", + "disabled":true, + "focused":true, + "id":"tuvxetsdqvcos8" + }], + "downgrade_rules":[ + { + "rule_name":"rule-test1", + "parameters":[ + "reqPath", + "method" + ], + "match_regex":"[\"reqPath\",\"==\",\"/test\"]", + "downgrade_backend":{ + "type":"mock", + "passthrough_infos":null, + "func_info":null, + "mock_info":{ + "status_code":200, + "result_content":"{status: ok}", + "headers":[] + }, + "http_info":null, + "http_vpc_info":null + }, + "breaker_condition":{ + "breaker_type":"timeout", + "breaker_mode":"percentage", + "unhealthy_threshold":30, + "time_window":15, + "open_breaker_time":15, + "unhealthy_percentage":51, + "min_call_threshold":20 + } + }] +}+++ diff --git a/docs/apig/umn/apig_03_0025.html b/docs/apig/umn/apig_03_0025.html new file mode 100644 index 00000000..7842be30 --- /dev/null +++ b/docs/apig/umn/apig_03_0025.html @@ -0,0 +1,106 @@ + + +++Parent topic: API Policies+Request Throttling
++Request throttling limits the number of times APIs can be called by a user or app within a specific time period to protect backend services. The throttling can be down to the minute or second. To ensure service continuity of an API, create a request throttling policy for the API.
++Usage Guidelines
+
- You have understood the guidelines for policy creation and API binding.
- Adding a request throttling policy to an API means binding them to each other. An API can be bound with only one request throttling policy for a given environment, but each request throttling policy can be bound to multiple APIs.
- For APIs not bound with a request throttling policy, the throttling limit is the value of ratelimit_api_limits set on the Parameters page of the gateway.
+Configuration Parameters
+++
Table 1 Configuration parameters + + + Parameter
++ Description
++ + Name
++ Request throttling policy name.
++ + Type
++ API-based or API-shared request throttling.
++
- API-specific: Request throttling is based on every API to which the policy is bound.
- API-sharing: Request throttling is based on all APIs as a whole to which the policy is bound.
+ + Period
++ For how long you want to limit the number of API calls. This parameter can be used together with the following parameters:
++
- Max. API Requests: Limit the maximum number of times an API can be called within a specific period.
- Max. User Requests: Limit the maximum number of times an API can be called by a user within a specific period.
- Max. Credential Requests: Limit the maximum number of times an API can be called by a credential within a specific period.
- Max. IP Address Requests: Limit the maximum number of times an API can be called by an IP address within a specific period.
+ + Max. API Requests
++ The maximum number of times each bound API can be called within the specified period.
+This parameter must be used together with Period.
++ + Max. User Requests
++ The maximum number of times each bound API can be called by a user within the specified period. This limit only applies to APIs that are accessed through app or IAM authentication.
++
- The value of this parameter cannot exceed that of Max. API Requests.
- This parameter must be used together with Period.
- If there are many users under your account that access an API, the request throttling limits of the API will apply to all these users.
+ + Max. Credential Requests
++ The maximum number of times each bound API can be called by a credential within the specified period. This limit only applies to APIs that are accessed through app authentication.
++
- The value of this parameter cannot exceed that of Max. User Requests or Max. API Requests.
- This parameter must be used together with Period.
+ + Max. IP Address Requests
++ Maximum times that an API can be requested by an IP address. You can configure the real_ip_from_xff parameter of the gateway to use the IP address in the X-Forwarded-For header as the basis for request throttling.
++
- The value of this parameter cannot exceed that of Max. API Requests.
- This parameter must be used together with Period.
+ + + Description
++ Description of the request throttling policy.
++Follow-Up Operations
+
- To control the traffic of a credential, bind a request throttling policy to the credential by referring to Binding a Request Throttling Policy to a Credential. Traffic of the credential is limited by the excluded credential threshold, while traffic of APIs and users are still limited by the request throttling policy.
- To control the traffic of a tenant, bind a request throttling policy to the tenant by referring to Binding a Request Throttling Policy to a Tenant. Traffic of the tenant is limited by the excluded tenant threshold, while traffic of APIs and users are still limited by the request throttling policy.
+Binding a Request Throttling Policy to a Credential
You have created a credential or obtained a credential ID from other tenants.
++ +
- On the request throttling policy details page, click the Excluded Credentials tab.
- Click Select Excluded Credential.
- Select a credential to exclude. You can use one of the following methods:
+
- To select an existing credential, click Existing, select a credential, and enter a threshold.
- To select a credential of other tenants, click Cross-tenant, and enter the credential ID and a threshold.
+![]()
Excluded credential thresholds take precedence over the value of Max. Credential Requests.
+For example, a request throttling policy has been configured, with Max. API Requests being 10, Max. Credential Requests being 3, Period being 1 minute, and two excluded credentials (max. 2 API requests for credential A and max. 4 API requests for credential B). If the request throttling policy is bound to an API, credential A and B can access the API 2 and 4 times within 1 minute, respectively.
++Binding a Request Throttling Policy to a Tenant
- On the request throttling policy details page, click the Excluded Tenants tab.
+
- Click Select Excluded Tenant.
- Enter the tenant information.
+
++
Table 2 Excluded tenant configuration + + + Parameter
++ Description
++ + Tenant ID
++ Account ID or project ID. For details, see the description about Excluded Tenants in Table 1.
++ + + Threshold
++ The maximum number of times an API can be called by the tenant within a specified period.
+The value of this parameter cannot exceed that of Max. API Requests.
+- Click OK.
+![]()
Excluded tenant thresholds take precedence over the value of Max. User Requests.
+For example, a request throttling policy has been configured, with Max. API Requests being 10, Max. User Requests being 3, Period being 1 minute, and two excluded tenants (max. 2 API requests for tenant A and max. 4 API requests for tenant B). If the request throttling policy is bound to an API, tenants A and B can access the API 2 and 4 times within 1 minute, respectively.
+++ diff --git a/docs/apig/umn/apig_03_0027.html b/docs/apig/umn/apig_03_0027.html new file mode 100644 index 00000000..3acba3e8 --- /dev/null +++ b/docs/apig/umn/apig_03_0027.html @@ -0,0 +1,68 @@ + + +++Parent topic: API Policies+Access Control
++Access control policies are a type of security measures provided by APIG. You can use them to allow or deny API access from specific IP addresses, account names, or account IDs.
+Access control policies take effect for an API only if they have been bound to the API.
++Usage Guidelines
+
- You have understood the guidelines for policy creation and API binding.
- An API can be bound only with one access control policy of the same restriction type in an environment, but each access control policy can be bound to multiple APIs.
+Configuration Parameters
+++
Table 1 Configuration parameters + + + Parameter
++ Description
++ + Name
++ Access control policy name.
++ + Type
++ Type of the source from which API calls are to be controlled.
++
- IP address: Control API access by IP address.
- Account name: Control IAM authentication–based API access by account name, not IAM user name.
Configure a single or multiple names separated by commas (,). Account name requirements: 1–64 characters, no commas (,) or all digits. The total length cannot exceed 1024 characters.
+- Account ID: Control IAM authentication–based API access by account ID, not IAM user ID.
Configure a single or multiple account IDs separated by commas (,). Each account ID contains 32 characters (letters and digits), separated by commas (,). Max. 1,024 characters.
+NOTE:++
- An API can be bound to two types of access control policies: account name and account ID. If both a blacklist and whitelist exist, API requests are verified only against the whitelist. If only a blacklist or whitelist exists, the account name and account ID verification results follow the AND logic.
- An API can be bound to three types of access control policies: IP address, account name, and account ID. IP addresses and accounts are in the AND relationship. Failure in verifying either of them will result in an API access failure. The same judgment logic applies to an API whether it is bound with a policy that controls access from specific IP address and account names or from specific IP addresses and account IDs.
+ + Effect
++ Options: Allow and Deny.
+Use this parameter along with Type to control access from certain IP addresses, account names, or account IDs to an API.
++ + IP Addresses
++ Required only when Type is set to IP address.
+IP addresses and IP address ranges that are allowed or not allowed to access an API.
+NOTE:+You can set a maximum of 100 IP addresses respectively to allow or deny access.
++ + Account Names
++ Required only when Type is set to Account name.
+Enter the account names that are allowed or forbidden to access an API. Use commas (,) to separate multiple account names.
+Click the username in the upper right corner of the console and choose My Credentials to obtain the account name.
++ + + Account ID
++ Required only when Type is set to Account ID.
+Enter the account IDs that are allowed or forbidden to access an API. Use commas (,) to separate multiple account IDs.
+Click the username in the upper right corner of the console and choose My Credentials to obtain the account ID.
+++ diff --git a/docs/apig/umn/apig_03_0028.html b/docs/apig/umn/apig_03_0028.html new file mode 100644 index 00000000..ef885336 --- /dev/null +++ b/docs/apig/umn/apig_03_0028.html @@ -0,0 +1,63 @@ + + +++Parent topic: API Policies+Signature Keys
++Signature keys are used by backend services to verify the identity of APIG.
+A signature key consists of a key and secret, and can be used only after being bound to an API. When an API bound with a signature key is called, APIG adds signature details to the API request. The backend service of the API signs the request in the same way, and verifies the identity of APIG by checking whether the signature is consistent with that in the Authorization header sent by APIG.
++Usage Guidelines
+
- You have understood the guidelines for policy creation and API binding.
- An API can only be bound with one signature key in a given environment, but each signature key can be bound to multiple APIs.
+Procedure
Figure 1 Signature key process flow++
- Create a signature key on the APIG console.
- Bind the signature key to an API.
- APIG sends signed requests containing a signature in the Authorization header to the backend service. The backend service can use different programming languages (Java, Go, Python, JavaScript, C#, PHP, C++, and C) to sign each request, and check whether the two signatures are consistent.
+Configuration Parameters
+++
Table 1 Configuration parameters + + + Parameter
++ Description
++ + Name
++ Signature key name.
++ + Type
++ Authentication type. Options: HMAC, Basic auth, AES.
++ + Signature Algorithm
++ Select an AES signature algorithm. Options:
++
- aes-128-cfb
- aes-256-cfb
+ + Key
++ Set the key based on the signature key type you have selected.
++
- If Type is HMAC, enter the key of the key pair used for app authentication.
- If Type is Basic auth, enter the username used for basic authentication.
- If Type is set to AES, enter the key used for AES authentication.
+ + Secret
++ Enter the secret information based on the key type you have selected.
++
- If Type is HMAC, enter the secret of the key pair used for app authentication.
- If Type is Basic auth, enter the password used for basic authentication.
- If Type is set to AES, enter the vector used for AES authentication.
+ + + Confirm Secret
++ Enter the secret again.
++Verifying the Signing Result
Sign each backend request by following the instructions in section "Creating Signatures for Backend Requests" in the API Gateway Developer Guide, and check whether the backend signature is consistent with the signature in the Authorization header of the API request.
+++ diff --git a/docs/apig/umn/apig_03_0029.html b/docs/apig/umn/apig_03_0029.html new file mode 100644 index 00000000..dfe6050e --- /dev/null +++ b/docs/apig/umn/apig_03_0029.html @@ -0,0 +1,74 @@ + + +++Parent topic: API Policies+Custom Authorizers
++APIG supports custom authentication of both frontend and backend requests.
++
- Frontend custom authentication: If you already have an authentication system, you can configure it in a function and then create a custom authorizer by using the function to authenticate API requests.
- Backend custom authentication: You can create a custom authorizer to authenticate requests for different backend services, eliminating the need to customize APIs for different authentication systems and simplifying API development. You only need to create a function-based custom authorizer in APIG to connect to your backend authentication system.
+![]()
Custom authentication is implemented using FunctionGraph and not supported if FunctionGraph is unavailable in the selected region.
+For details about custom authentication, see the relevant section in the API Gateway Developer Guide.
+The following figure shows the process of calling APIs through custom authentication.
+Figure 1 Calling APIs through custom authentication++Prerequisites
You have created a function in FunctionGraph.
++Creating a Custom Authorizer
- Go to the APIG console.
- Select a dedicated gateway at the top of the navigation pane.
+
- In the navigation pane, choose API Management > API Policies.
- On the Custom Authorizers page, click Create Custom Authorizer.
Configure custom authorizer parameters. ++++
Table 1 Parameters for creating a custom authorizer + + + Parameter
++ Description
++ + Name
++ Authorizer name.
++ + Type
++ +
- Frontend: Authenticates access to APIs.
- Backend: Authenticates access to backend services.
+ + Function URN
++ Select a FunctionGraph function.
++ + Version/Alias
++ Select a function version or alias. For details, see sections "Managing Versions" and "Managing Aliases" in the FunctionGraph User Guide.
++ + Max. Cache Age (s)
++ The time for caching authentication results.
+The value ranges from 0s to 3,600s. 0 indicates that authentication results will not be cached.
++ + Identity Sources
++ Request parameters used for authentication.
+This parameter is mandatory only if you set Type to Frontend, and Max. Cache Age (s) is greater than 0. When the cache is used, this parameter is used as a search criterion to query authentication results.
++ + Send Request Body
++ Determine whether to send the body of each API request to the authentication function. If you enable this option, the request body will be sent to the authentication function in the same way as the headers and query strings.
++ + + User Data
++ Customized request parameters to be used together with Identity Sources when APIG invokes a function.
+- Click OK.
++ diff --git a/docs/apig/umn/apig_03_0030.html b/docs/apig/umn/apig_03_0030.html new file mode 100644 index 00000000..dd6b93c6 --- /dev/null +++ b/docs/apig/umn/apig_03_0030.html @@ -0,0 +1,19 @@ + + +++Parent topic: API Policies+Credentials
+ ++ ++ diff --git a/docs/apig/umn/apig_03_0031.html b/docs/apig/umn/apig_03_0031.html new file mode 100644 index 00000000..6d04d45a --- /dev/null +++ b/docs/apig/umn/apig_03_0031.html @@ -0,0 +1,13 @@ + + +Monitoring & Analysis
+ +++ diff --git a/docs/apig/umn/apig_03_0032.html b/docs/apig/umn/apig_03_0032.html new file mode 100644 index 00000000..5ff89833 --- /dev/null +++ b/docs/apig/umn/apig_03_0032.html @@ -0,0 +1,320 @@ + + ++
+- API Monitoring
+
+- Log Analysis
+
+Monitoring Metrics
+++Introduction
This section describes the metrics that APIG reports to the Cloud Eye service. You can view metrics and alarms by using the Cloud Eye console.
++Namespace
SYS.APIC
++Metrics
+++
Table 1 Metric description + + + Metric ID
++ Metric Name
++ Description
++ Value Range
++ Monitored Object and Dimension
++ Monitoring Period (Minute)
++ + requests
++ Requests
++ Number of times that all APIs in a dedicated gateway have been called.
++ ≥ 0
++ Monitored object: dedicated API gateway
+Dimension: instance_id
++ 1
++ + error_4xx
++ 4xx Errors
++ Number of times that all APIs in the dedicated gateway return a 4xx error.
++ ≥ 0
++ Monitored object: dedicated API gateway
+Dimension: instance_id
++ 1
++ + error_5xx
++ 5xx Errors
++ Number of times that all APIs in the dedicated gateway return a 5xx error.
++ ≥ 0
++ Monitored object: dedicated API gateway
+Dimension: instance_id
++ 1
++ + throttled_calls
++ Throttled API Calls
++ Number of times that all APIs in the dedicated gateway have been throttled.
++ ≥ 0
++ Monitored object: dedicated API gateway
+Dimension: instance_id
++ 1
++ + avg_latency
++ Average Latency
++ Average latency of all APIs in the gateway.
++ ≥ 0
+Unit: ms
++ Monitored object: dedicated API gateway
+Dimension: instance_id
++ 1
++ + max_latency
++ Maximum Latency
++ Maximum latency of all APIs in the gateway.
++ ≥ 0
+Unit: ms
++ Monitored object: dedicated API gateway
+Dimension: instance_id
++ 1
++ + req_count
++ Requests
++ Number of times that an API has been called.
++ ≥ 0
++ Monitored object: API
+Dimension: api_id
++ 1
++ + req_count_2xx
++ 2xx Responses
++ Number of times that the API returns a 2xx response.
++ ≥ 0
++ Monitored object: API
+Dimension: api_id
++ 1
++ + req_count_4xx
++ 4xx Errors
++ Number of times that the API returns a 4xx error.
++ ≥ 0
++ Monitored object: API
+Dimension: api_id
++ 1
++ + req_count_5xx
++ 5xx Errors
++ Number of times that the API returns a 5xx error.
++ ≥ 0
++ Monitored object: API
+Dimension: api_id
++ 1
++ + req_count_error
++ Total Errors
++ Total number of errors returned by the API.
++ ≥ 0
++ Monitored object: API
+Dimension: api_id
++ 1
++ + avg_latency
++ Average Latency
++ Average latency of the API.
++ ≥ 0
+Unit: ms
++ Monitored object: API
+Dimension: api_id
++ 1
++ + max_latency
++ Maximum Latency
++ Maximum latency of the API.
++ ≥ 0
+Unit: ms
++ Monitored object: API
+Dimension: api_id
++ 1
++ + input_throughput
++ Incoming Traffic
++ Incoming traffic of the API.
++ ≥ 0
+Unit: Byte, KB, MB, or GB
++ Monitored object: API
+Dimension: api_id
++ 1
++ + output_throughput
++ Outgoing Traffic
++ Outgoing traffic of the API.
++ ≥ 0
+Unit: Byte, KB, MB, or GB
++ Monitored object: API
+Dimension: api_id
++ 1
++ + node_system_load
++ Node System Load
++ Load details of a gateway node on the data plane. 1 means low water level, 2 means medium water level, and 3 means high water level.
++ 1, 2, 3
+Unit: count
++ Monitored object: gateway node
+Dimension: node_ip
++ 1
++ + node_cpu_usage
++ Node CPU Usage
++ CPU usage details of a gateway node on the data plane.
++ ≥ 0
+Unit: %
++ Monitored object: gateway node
+Dimension: node_ip
++ 1
++ + + node_memory_usage
++ Node Memory Usage
++ Memory usage details of a gateway node on the data plane.
++ ≥ 0
+Unit: %
++ Monitored object: gateway node
+Dimension: node_ip
++ 1
++Dimension
+++
Table 2 Monitoring dimensions + + + Key
++ Value
++ + instance_id
++ Dedicated gateway
++ + instance_id,node_ip
++ Dedicated gateway node
++ + + instance_id,api_id
++ API
+++ diff --git a/docs/apig/umn/apig_03_0033.html b/docs/apig/umn/apig_03_0033.html new file mode 100644 index 00000000..8ad83655 --- /dev/null +++ b/docs/apig/umn/apig_03_0033.html @@ -0,0 +1,17 @@ + + +++Parent topic: API Monitoring+Creating Alarm Rules
+++Scenario
You can create alarm rules to monitor the status of your APIs.
+An alarm rule consists of a rule name, monitored objects, metrics, alarm thresholds, monitoring interval, and notification.
++Prerequisites
An API has been called.
++Procedure
- Go to the APIG console.
- Select a gateway at the top of the navigation pane.
- In the navigation pane, choose API Management > API Groups.
+
- Click a group name.
- On the Monitoring area of the APIs tab, click More to access the Cloud Eye console. Then create an alarm rule. For details, see section "Creating an Alarm Rule" in the Cloud Eye User Guide.
++ diff --git a/docs/apig/umn/apig_03_0034.html b/docs/apig/umn/apig_03_0034.html new file mode 100644 index 00000000..fb32dcbf --- /dev/null +++ b/docs/apig/umn/apig_03_0034.html @@ -0,0 +1,19 @@ + + +++Parent topic: API Monitoring+Viewing Metrics
++Cloud Eye monitors the status of your APIs and allows you to view their metrics.
++Viewing Metrics of an API
- Go to the APIG console.
- Select a gateway at the top of the navigation pane.
- In the navigation pane, choose API Management > API Groups.
- Click a group name.
- In the left pane of the APIs tab, select an API.
+
- View metrics of the API in the Monitoring area.
View the call statistics of an API, including Requests, Latency (ms), Data Traffic (bytes), and Errors. You can also select a time range to view the data.
++
- Data in the last hour is updated every 2 minutes.
- Data in the last 6 hours is updated every 2 hours.
- Data in the last day is updated every 2 hours.
- Data in the last week and last month is updated every day.
- To view monitoring information about instances and instance nodes, click More.
+![]()
The monitoring data is retained for two days. To retain the data for a longer period, save it to an OBS bucket.
++Viewing Metrics of an API group
- Go to the APIG console.
- Select a gateway at the top of the navigation pane.
+
- In the navigation pane, choose Monitoring & Analysis > API Monitoring.
- Select the API group to be viewed and view the API call statistics, including Requests, Latency (ms), Data Traffic (bytes), and Errors
++ diff --git a/docs/apig/umn/apig_03_0035.html b/docs/apig/umn/apig_03_0035.html new file mode 100644 index 00000000..60e09fb0 --- /dev/null +++ b/docs/apig/umn/apig_03_0035.html @@ -0,0 +1,22 @@ + + +++Parent topic: API Monitoring+Gateway Management
++++ ++ diff --git a/docs/apig/umn/apig_03_0037.html b/docs/apig/umn/apig_03_0037.html new file mode 100644 index 00000000..c3f2bed0 --- /dev/null +++ b/docs/apig/umn/apig_03_0037.html @@ -0,0 +1,127 @@ + + +Creating a Gateway
++This section describes how to create a gateway. You can create APIs and use them to provide services only after a gateway is created.
++Constraints
There are some limitations on creating a gateway. If you cannot create a gateway or a gateway fails to be created, check the following items:
++
- Gateway quota
By default, your account can be used to create five gateways in a project. To create more dedicated gateways, submit a service ticket to increase the quota.
+- Permissions
You must be assigned both the APIG Administrator and VPC Administrator roles or assigned the APIG FullAccess policy to create a gateway.
+You can also be granted permissions using custom policies. For details, see APIG Custom Policies.
+- Number of available private IP addresses in the subnet
The basic, professional, enterprise, and platinum editions of APIG require 3, 5, 6, and 7 private IP addresses. Check that the subnet you choose has sufficient private IP addresses on the VPC console.
++Network Environment
+
- Workload
Gateways are deployed in VPCs (workloads). Cloud resources, such as Elastic Cloud Servers (ECSs), in the same workload can call APIs using the private IP address of the gateway deployed in the workload.
+You are advised to deploy your gateways in the same workload as your other services to facilitate network configuration and secure network access.
++![]()
VPCs (workloads) where gateways have been deployed cannot be changed.
+- EIP
To allow public inbound access to the APIs deployed in a gateway, create an Elastic IP (EIP) and bind it to the gateway.
++![]()
For APIs whose backend services are deployed on a public network, APIG automatically generates an IP address for public outbound access, and you do not need to create an Elastic IP (EIP).
+- Security group
Similar to a firewall, a security group controls access to a gateway through a specific port and transmission of communication data from the gateway to a specific destination address. For security purposes, create inbound rules for the security group to allow access only on specific ports.
+The security group bound to a gateway must meet the following requirements:
++
- Inbound access: To allow the APIs in the gateway to be accessed over public networks or from other security groups, configure inbound rules for the security group to allow access on ports 80 (HTTP) and 443 (HTTPS).
- Outbound access: If the backend service of an API is deployed on a public network or in another security group, add outbound rules for the security group to allow access to the backend service address through the API calling port.
- If the frontend and backend services of an API are bound with the same security group and VPC as the gateway, no inbound or outbound rules are needed to allow access through the preceding ports.
+Procedure
- Go to the .
+![]()
+
- ELB load balancing is enabled by default after gateways are purchased. Gateways with load balancing enabled do not support security groups. To disable access from specific IP addresses, use access control policies.
- ELB functions as a load balancer for gateways, which support cross-VPC access. Gateways with public inbound access enabled are randomly assigned an EIP and cannot use an existing EIP.
- In the navigation pane, choose Gateways.
+
- Click Create Gateway. Set the gateway parameters by referring to the following table.
++++
Table 1 API gateway parameters + + + Parameter
++ Description
++ + Region
++ A geographic area where the gateway will be deployed. Deploy the gateway in the same region as your other services to allow all services to communicate with each other through subnets within a workload. This reduces public bandwidth costs and network latency.
++ + AZ
++ A physical region where resources use independent power supplies and networks. Availability zones (AZs) are physically isolated but interconnected through an internal network.
+To enhance gateway availability, deploy the gateway in multiple AZs.
+APIG does not support gateway migration across AZs.
++ + Gateway Name
++ Gateway name.
++ + Edition
++ The basic, professional, enterprise, and platinum editions are available. The number of concurrent requests allowed varies depending on the gateway edition. For more information, see Specifications in the API Gateway Service Overview.
++ + Scheduled Maintenance
++ Time period when the gateway can be maintained. The technical support personnel will contact you before maintenance.
+Select a time period with low service demands.
++ + Enterprise Project
++ Select an enterprise project to which the gateway belongs. This parameter is available only if your account is an enterprise account.
+For details about resource usage, migration, and user permissions of enterprise projects, see the Enterprise Management User Guide.
++ + Public Inbound Access
++ Determine whether to allow the APIs created in the gateway to be called by external services using an EIP. To enable this function, assign an EIP to the dedicated gateway.
+NOTE:++
- APIs in the gateway can be called using independent or debugging domain names. There is a limit on the number of times that APIs in an API group can be called per day using the debugging domain name. To overcome the limitation, bind independent domain names to the API group and ensure that the domain names have already been CNAMEd to the EIP of the gateway to which the API group belongs.
For example, you have an HTTPS API (path: /apidemo) with public access enabled. The API can be called using "https://{domain}/apidemo", where {domain} indicates an independent domain name bound to the group of the API. The default port is 443.
++ + Public Outbound Access
++ Determine whether to allow backend services of the APIs created in the gateway to be deployed on public networks. Set a bandwidth that meets your service requirements for public outbound access. The bandwidth will be billed by hour based on the pricing of the EIP service.
++ + Network
++ Select a VPC and subnet for the dedicated gateway.
++
- Select the created VPC and subnet from the drop-down list.
- Create a VPC and subnet by clicking Create VPC. For details, see section "Creating a VPC" in Virtual Private Cloud User Guide.
+ + Security Group
++ Select a security group to control inbound and outbound access.
+If the backend service of an API is deployed on an external network, configure security group rules to allow access to the backend service address through the API calling port.
+NOTE:+If public inbound access is enabled, add inbound rules for the security group to allow access on ports 80 (HTTP) and 443 (HTTPS).
++ + VPC Endpoint Service
++ Name of a VPC endpoint service to create when you buy the gateway. The gateway then can be accessed using the endpoint service.
+If a name is specified, the VPC endpoint service name to display on the VPC Endpoints tab will be in the format "{region}.{Specified VPC endpoint service name}.{VPC endpoint service ID}". If no name is specified, the displayed name will be in the format "{region}.apig.{VPC endpoint service ID}".
++ + Tags
++ Tags classify your gateways to facilitate search, analysis, and management. If no tag is available, click View predefined tags or enter a tag key and value to create one.
+Alternatively, set tags on the Tag Management Service (TMS) console by referring to Managing Tags.
++ + + Description
++ Description about the gateway.
+- Click Next.
- Confirm the gateway configurations. The instance is created with the status displayed on the screen.
+Follow-Up Operations
After the gateway is created, you can create and manage APIs in this gateway. Go to the Gateway Information page. It shows the gateway details, network configurations, and configuration parameters.
+You can modify the gateway name, description, scheduled maintenance time window, security group, and EIP.
+Before deleting a gateway, ensure that the deletion will not impact your services.
+++ diff --git a/docs/apig/umn/apig_03_0038.html b/docs/apig/umn/apig_03_0038.html new file mode 100644 index 00000000..e4fa98c5 --- /dev/null +++ b/docs/apig/umn/apig_03_0038.html @@ -0,0 +1,60 @@ + + +++Parent topic: Gateway Management+Viewing or Modifying Gateway Information
++You can view and modify the configuration of your gateways on the console.
++Procedure
- Go to the APIG console.
+ +
- In the navigation pane, choose Gateways.
- Click Access Console or the name of the target gateway.
- On the Gateway Information tab, view or modify the configuration of the gateway.
+
+++ diff --git a/docs/apig/umn/apig_03_0039.html b/docs/apig/umn/apig_03_0039.html new file mode 100644 index 00000000..784818fa --- /dev/null +++ b/docs/apig/umn/apig_03_0039.html @@ -0,0 +1,277 @@ + + +++Parent topic: Gateway Management+Configuring Parameters
++This section describes how to configure common parameters for a gateway to adjust component functions.
++Constraint
Modifying gateway configuration parameters will interrupt services. Do this during off-peak hours or when no service is running.
++Procedure
- Go to the APIG console.
+
- In the navigation pane, choose Gateways.
- Click Access Console or the name of the target gateway.
- Click the Parameters tab, and click Modify in the row that contains the target parameter. The configuration parameters vary depending on the gateway edition.
+
+ ++
Table 1 Configuration parameters + + + Parameter
++ Description
++ + ratelimit_api_limits
++ Default request throttling value applied to all APIs. Default: 200 calls/second. The total number of times an API can be called is determined by this parameter only if no request throttling policy is bound to the API. The Max. API Requests of a request throttling policy cannot exceed the value of this parameter.
++ + request_body_size
++ Maximum size of the body that can be carried in an API request. The default value is 12 MB. The value ranges from 1 MB to 9,536 MB.
++ + backend_timeout
++ Backend response timeout. Default: 60,000 ms. Range: 1–600,000 ms.
++ + app_token
++ Determine whether to enable app_token authentication. Default: disabled. If you enable this function, an access_token can be added to the API request for authentication.
++
- app_token_expire_time: validity period of an access_token. A new access_token must be obtained before the original access_token expires.
- refresh_token_expire_time: the validity period of a refresh_token. A refresh_token is used to obtain a new access_token.
- app_token_uri: the URI used to obtain an access_token.
- app_token_key: the encryption key of an access token.
+ + app_basic
++ Determine whether to enable app_basic authentication. Default: disabled. After this option is enabled, users can add the header parameter Authorization and set the parameter value to "Basic + base64 (appkey + : + appsecret)", in which appkey and appsecret are the key and secret of a credential.
++ + app_secret
++ Determine whether to enable app_secret authentication. Default: disabled. If you enable this function, the X-HW-ID and X-HW-AppKey parameters can be added to the API request to carry the key and secret of a credential for authentication.
++ + app_route
++ Determine whether to support IP address–based API access. Default: disabled. If you enable this function, APIs in any group except DEFAULT can be called using IP addresses.
++ + backend_client_certificate
++ Determine whether to enable backend two-way authentication. Default: disabled. If you enable this function, you can configure two-way authentication for a backend when creating an API.
++ + ssl_ciphers
++ Supported HTTPS cipher suites. By default, all cipher suites are supported. Select cipher suites after you bind independent domain names to an API group.
++ + real_ip_from_xff
++ Determine whether to use the IP addresses in the X-Forwarded-For header for access control and request throttling. By default, the IP addresses in this header are not used.
+xff_index: Sequence number of an IP address in the X-Forwarded-For header. The value can be positive, negative, or 0.
++
- If the value is 0 or positive, the IP address of the corresponding index in the X-Forwarded-For header will be obtained.
- If the value is negative, the IP address of the indicated reverse sequence in the X-Forwarded-For header will be obtained.
For example, assume that the X-Forwarded-For header of a request received by API gateway contains three IP addresses: IP1, IP2, and IP3. If the value of xff_index is 0, IP1 is obtained. If the value is 1, IP2 is obtained. If the value is –1, IP3 is obtained. If the value is –2, IP2 is obtained.
++ + vpc_name_modifiable
++ Determine whether load balance channel names can be modified. By default, the names can be modified.
+NOTICE:+If this option is enabled, load balance channels of the current gateway cannot be managed using project-level load balance channel management APIs.
++ + custom_auth_header
++ Determine whether to support custom authentication headers. By default, custom authentication headers are not supported. If you enable this parameter, the initial values of app_auth_header and backend_sign_header are empty, same as when the parameter is disabled.
+If you set the Current Value of app_auth_header, the parameter with the same name as this value carries the app authentication information in the request header for APIs that use app authentication. If you set the Current Value of backend_sign_header, the parameter with the same name as this value carries the signature information in the backend request header for APIs bound with an HMAC or Basic Auth signature key policy.
+NOTICE:+Configuring this parameter will affect all APIs that use app authentication or are bound with an HMAC or Basic Auth signature key policy in the gateway.
++ + gzip
++ Determine whether to compress responses using gzip to reduce public network traffic. By default, responses are not compressed. The configuration will take effect in 1 minute.
+After enabling this parameter, set the compression level parameter comp_level. The greater the value is, the better responses are compressed. Default: 6.
+NOTICE:++
- Use gzip to compress response body larger than 1 KB.
- gzip supports the following file types: text/xml, text/plain, text/css, application/javascript, application/x-javascript, application/rss+xml, text/javascript, image/tiff, image/svg+xml, application/json, and application/xml.
- After enabling gzip compression, you must add request header Accept-Encoding: gzip.
- The gzip configuration can be modified 1 minute after being completed.
+ + custom_log
++ Whether to enable custom logs. Default: disabled. Once enabled, values of specified parameters will be printed in specified locations of calling logs for all APIs in the gateway.
+After this function is enabled, click Modify, and then click Add to add the parameters to print in calling logs.
+NOTICE:++
- Custom logs print only the requests initiated from clients and do not print the constants and system parameters defined in APIG.
- Custom logs can have a maximum of 10 fields, with a total size of not more than 2 KB.
- Some special characters in parameter values will be encoded. For example, the plus sign (+) will be encoded as a space, double quotation marks (") encoded as \x22, and a backslash (\) encoded as \x5C.
+ + sse_strategy
++ Whether to enable Server-Sent Events (SSE) transmission. It is disabled by default. Once enabled, the responses of APIs are output in streaming mode for character-based rendering.
+NOTICE:+The sse_strategy configuration can be modified 1 minute after being completed.
++ + vpc_name_modifiable
++ Whether to enable name modification of the load balance channel. If the load balance channel name is modifiable, the load balance channel of the current gateway cannot be operated through the project-level load balance channel management API.
++ + vpc_health_status
++ Whether to display the health status of backend instances for load balance channels when the channels' health check is enabled. This parameter is disabled by default.
++ + request_custom_config
++ Configure client request parameters.
++
- HTTP/2: Enabled by default. For details, see HTTP 2.0.
- request_body_timeout: Timeout for client request body. Default: 8s. Modify this parameter if the network condition is poor or the request body is too large.
NOTICE:+The client request configuration can be modified 1 minute after being completed.
++ + + api_uri_no_escape
++ Determine whether to escape the path in the API URL. It is disabled by default, indicating that the path in the URL is escaped.
+For details about the function of not escaping paths after api_uri_no_escape is enabled, see Table 2.
+++
Table 2 Functions affected if path is not escaped + + + Function
++ Description
++ API Frontend Definition Path
++ Path for Sending a Request
++ Disabling api_uri_no_escape
++ Enabling api_uri_no_escape
++ + API definition
++ Path for APIG to match routes.
++ /{path}
++ /aa%2Faa
++ /aa/aa
++ /aa%2Faa
++ + Parameter orchestration
++ Path used by backend service parameters.
++ -
++ -
++ /aa/aa
++ /aa%2Faa
++ + HTTP-to-HTTPS redirection
++ Path used for redirection.
++ -
++ -
++ /aa/aa
++ /aa%2Faa
++ + Backend policies
++ The policy condition is the path of the request input parameter.
++ -
++ -
++ /aa/aa
++ /aa%2Faa
++ + Third-party authentication policy
++ Path transferred to the third-party system after the API is bound to a third-party authentication policy.
++ -
++ -
++ /aa/aa
++ /aa%2Faa
++ + Kafka log push policy
++ Request path used after the Kafka log push policy is bound to the API.
++ -
++ -
++ /aa/aa
++ /aa%2Faa
++ + Load balance channels
++ Path used by APIG to forward requests when the load balance channel uses the URI hash.
+ ++ -
++ -
++ /aa/aa
++ /aa%2Faa
++ + FunctionGraph backends
++ Request path sent to a function when the backend type of the API is FunctionGraph.
++ -
++ -
++ /aa/aa
++ /aa%2Faa
++ + + Custom authentication
++ Path of the request sent to the function when the API authentication mode is set to Custom.
++ -
++ -
++ /aa/aa
++ /aa%2Faa
+++ diff --git a/docs/apig/umn/apig_03_0040.html b/docs/apig/umn/apig_03_0040.html new file mode 100644 index 00000000..65335558 --- /dev/null +++ b/docs/apig/umn/apig_03_0040.html @@ -0,0 +1,295 @@ + + +++Parent topic: Gateway Management+Load Balance Channels
++Load balance channels expose your services through dedicated gateways, and are accessed through subnets in VPCs for lower latency. The server channel balances loads of backend services while the microservice channel automatically synchronizes service node changes.
+After creating a load balance channel, you can configure it for an API of an HTTP&HTTPS backend service.
+For example, six ECSs have been deployed, and a load balance channel has been created to reach ECS 01 and ECS 04. In this situation, APIG can access these two ECSs through the channel.
+Figure 1 Accessing ECSs in a load balance channel through APIG++Prerequisites
+
- You have the VPC Administrator permission.
- To configure a server channel, ensure that you have created cloud servers that can communicate with APIG.
- To configure a Cloud Container Engine (CCE) microservice channel, ensure that you have created a cluster (a CCE cluster of VPC network model or a Turbo cluster) and a workload. For details, see section "Creating a CCE Standard/Turbo Cluster" or "Creating a Workload" in the CCE User Guide.
+![]()
+
- If your gateway does not support microservice channels, contact technical support to upgrade the gateway to the latest version.
- The CCE cluster and the target gateway must be in the same VPC or connected to each other using a VPC peering connection. If the network is connected through the same VPC (with extended network segments) or a VPC peering connection, you need to add the container CIDR block of the cluster to Routes on the gateway details page.
- The workload must have a pod label configured. This label will be used to identify the workload, for example, a specific version of the workload, during microservice configuration. For details, see section "Labels and Annotations" in the CCE User Guide.
+
- Configure a pod label when you create a workload by clicking Create Workload. On the workload creation page, in the Advanced Settings > Labels and Annotations > Pod Label area, configure the app label.
- Configure a pod label when you create a workload by creating a YAML file. For example: app=service01.
spec: + replicas: 2 + selector: + matchLabels: + app: 'service01'++Creating a Load Balance Channel
- Go to the APIG console.
- Select a gateway at the top of the navigation pane.
- In the navigation pane, choose API Management > API Policies.
+
- Click the Load Balance Channels tab.
- Click Create Load Balance Channel and configure basic information.
+
++
Table 1 Basic information + + + Parameter
++ Description
++ + Name
++ Channel name.
++ + Port
++ The host port of the channel, that is, the port of your backend services.
+Range: 1–65535
++ + Routing Algorithm
++ The algorithm to be used to forward requests to cloud servers you select.
+The following routing algorithms are available:
++
- WRR: weighted round robin
- WLC: weighted least connection
- SH: source hashing
- URI hashing
+ + + Type
++ +- Configure servers if Type is set to Server.
+![]()
Load balance channels support private network load balancers. You can specify server addresses.
++
- Select cloud servers
+
- Click Create Server Group.
In the displayed dialog box, enter server group information and click OK. ++++
Table 2 Server group parameters + + + Parameter
++ Description
++ + Group Name
++ Enter a server group name. Using naming rules facilitates future search.
++ + Weight
++ Enter the weight of the server group. The larger the weight, the more requests can be forwarded to the servers in the group.
++ + + Description
++ Enter a brief description of the server group.
+- Click Add Cloud Server.
In the displayed dialog box, select a subnet, select the cloud servers to be added, and click OK.
+- After the configuration is complete, configure health check.
- Specify IP addresses
+
- Click Create Server Group.
In the displayed dialog box, enter server group information and click OK. Configure parameters according to Table 2.
+- Click Add Backend Server Address and enter a backend server address. +
++
Table 3 Backend server parameters + + + Parameter
++ Description
++ + Backend Server Address
++ Backend server IP address.
++ + Standby Node
++ If you enable this option, the backend server serves as a standby node. It works only when all non-standby nodes are faulty.
++ + Port
++ Access port number of the backend server. If the port number is 0, the port of the load balance channel is used.
+The port number ranges from 0 to 65535.
++ + + Server Status
++ Specify whether to enable the server. Requests are distributed to the server only if it is enabled.
+- After the configuration is complete, configure health check.
- Configure the microservice and server groups if Type is set to Microservice.
++
- Configure microservice information according to the following table. +
++
Table 4 CCE microservice configuration + + + Parameter
++ Description
++ + Microservice Type
++ Fixed as Cloud Container Engine (CCE).
++ + Cluster
++ Select a cluster. Click View CCE Console to view the available clusters.
++ + Namespace
++ Namespace of the cluster, which is an abstract collection of resources and objects.
++ + Workload Type
++ +
- Deployment: Deployments do not store any data or status while they are running.
- StatefulSet: StatefulSets store data and statuses while they are running.
- DaemonSet: DaemonSets ensure that only one pod runs on all or some nodes. When a node is added to a cluster, a new pod is also added for the node. When a node is removed from a cluster, the pod is also reclaimed.
NOTE:+If a DaemonSet is deleted, all pods created by it will be deleted.
+For details about workload types, see section "Workload Overview" in the CCE User Guide.
++ + Service Label Key
++ Pod label of a workload. The service label name is the pod label key and the service label value is the pod label value.
+For details about pod labels, see section "Labels and Annotations" in the CCE User Guide.
++ + + Service Label Value
+- Configure a server group.
Click Add Server Group and set required parameters. ++++
Table 5 Server group configuration of CCE microservice + + + Parameter
++ Description
++ + Server Group Name
++ Same as the service label value by default. Modify the name if necessary.
++ + Weight
++ Default value: 1; range: 0–100.
+NOTE:+If Routing Algorithm is set to URI hashing, the weight is 1 by default and cannot be changed.
++ + Backend Service Port
++ The port used by the backend server. If no port number is specified or the port number is 0, the port of the load balance channel is used by default.
+The port number ranges from 0 to 65535.
++ + Workload Name
++ Select a CCE workload.
++ + + Tag
++ Pod label of a workload. If a workload cannot be identified by certain service label name and value, select another pod label to specify the workload.
+For example, workloads 01 and 02 have the same app label, but they can be identified using the version or test_name tag.
+Workload 01
+spec: + replicas: 2 + selector: + matchLabels: + app: 'app01' + version: 'v1'+Workload 02
+spec: + replicas: 2 + selector: + matchLabels: + app: 'app01' + test_name: 'test_value'+- After the configuration is complete, configure health check.
- Configure health checks.
+
++
Table 6 Basic information + + + Parameter
++ Description
++ + Protocol
++ The protocol used to perform health checks on cloud servers associated with the channel. Options:
++
- TCP
- HTTP
- HTTPS
Default value: TCP.
++ + Two-Way Authentication
++ Set this parameter only when Protocol is set to HTTPS.
+Determine whether to allow APIG to authenticate the API backend service. For details about how to configure the certificate for two-way authentication, see Procedure.
++ + Path
++ Set this parameter only when Protocol is not set to TCP.
+The destination path for health checks.
++ + Method
++ +
- GET
- HEAD
+ + Check Port
++ The destination port for health checks.
+If this parameter is not specified, the port of the load balance channel is used by default.
++ + Healthy Threshold
++ The number of consecutive successful checks required for a cloud server to be considered healthy.
+Range: 2–10. Default value: 2
++ + Unhealthy Threshold
++ The number of consecutive failed checks required for a cloud server to be considered unhealthy.
+Range: 2–10. Default value: 5.
++ + Timeout (s)
++ The timeout used to determine whether a health check has failed. Unit: s.
+Range: 2–30. Default value: 5.
++ + Interval (s)
++ The interval between consecutive checks. Unit: s.
+Range: 5–300. Default value: 10.
++ + + Response Codes
++ Set this parameter only when Protocol is not set to TCP.
+The HTTP codes used to check for a successful response from a target.
+- Click Finish.
For a microservice channel, adding, deleting, or modifying a pod IP address of the CCE workload will also change the backend server address of the channel.
++Follow-Up Operations
+
- Ensure that a route has been added to the gateway. To connect a CCE workload to a gateway through the same VPC (with extended network segments) or a VPC peering connection, you need to add a route.
+
- Log in to the CCE console, choose Clusters, and click the name of the created CCE cluster.
- In the Networking Configuration area on the Cluster Details page, view and record the container CIDR block.
- Log in to the APIG console and click the gateway name on the Gateways page.
- In the Routes area on the Gateway Information page, check whether the added route is consistent with the container CIDR block. If not, add the correct route.
- Create APIs to expose backend services deployed in the workload.
++ diff --git a/docs/apig/umn/apig_03_0041.html b/docs/apig/umn/apig_03_0041.html new file mode 100644 index 00000000..9b365cfb --- /dev/null +++ b/docs/apig/umn/apig_03_0041.html @@ -0,0 +1,40 @@ + + +++Parent topic: API Policies+Managing Environments
++An API can be called in different environments, such as production, testing, and development environments. RELEASE is the default environment provided by APIG.
++Creating an Environment
- Go to the APIG console.
- Select a dedicated gateway at the top of the navigation pane.
- In the navigation pane, choose API Management > API Policies.
- Click the Environments tab.
+
- Click Create Environment and set the environment information.
+
++
Table 1 Environment information + + + Parameter
++ Description
++ + Name
++ Environment name.
++ + + Description
++ Description of the environment.
+- Click OK.
After the environment is created, it is displayed in the environment list.
++Accessing an Environment
You can call an API in the RELEASE environment by using a RESTful API. To access the API in other environments, add the X-Stage header to the request to specify an environment name. For example, add X-Stage:DEVELOP to the request header to access an API in the DEVELOP environment.
++![]()
APIG does not support API debugging with environment variables.
++Follow-Up Operations
After creating an environment, publish APIs in the environment so that they can be called by API callers.
+++ diff --git a/docs/apig/umn/apig_03_0042.html b/docs/apig/umn/apig_03_0042.html new file mode 100644 index 00000000..d81d6524 --- /dev/null +++ b/docs/apig/umn/apig_03_0042.html @@ -0,0 +1,408 @@ + + +++Parent topic: API Policies+Log Analysis
++This section describes how to obtain and analyze the API calling logs of a dedicated gateway.
++Prerequisites
APIs have been called.
++Procedure
- Go to the APIG console.
- Select a gateway at the top of the navigation pane.
- In the navigation pane, choose Monitoring & Analysis > Log Analysis.
- Click Configure Log Collection, and change Collect Logs to
to enable log collection.
+
- Specify a log group and log stream, and click OK. For details about log groups and log streams, see section "Log Management" in the Log Tank Service User Guide.
- Click Log Fields to view the description of each log field. Then view and analyze logs by referring to the log field descriptions.
- To export logs, see section "Log Transfer" in the Log Tank Service User Guide.
Fields in access logs are separated using spaces. The following table describes each log field.
+ +++
Table 1 Log field description + + + No.
++ Field
++ Description
++ + 1
++ remote_addr
++ Client IP address.
++ + 2
++ request_id
++ Request ID.
++ + 3
++ api_id
++ API ID
++ + 4
++ user_id
++ Project ID provided by a requester for IAM authentication.
++ + 5
++ app_id
++ App ID provided by a requester for app authentication.
++ + 6
++ time_local
++ Time when a request is received.
++ + 7
++ request_time
++ Request latency.
++ + 8
++ request_method
++ HTTP request method.
++ + 9
++ scheme
++ Request protocol.
++ + 10
++ host
++ Domain name.
++ + 11
++ router_uri
++ Request URI.
++ + 12
++ server_protocol
++ Request protocol.
++ + 13
++ status
++ Response status code.
++ + 14
++ bytes_sent
++ Response size in bytes, including the status line, header, and body.
++ + 15
++ request_length
++ Request length in bytes, including the start line, header, and body.
++ + 16
++ http_user_agent
++ User agent ID.
++ + 17
++ http_x_forwarded_for
++ X-Forwarded-For header field.
++ + 18
++ upstream_addr
++ Backend address.
++ + 19
++ upstream_uri
++ Backend URI.
++ + 20
++ upstream_status
++ Backend response code.
++ + 21
++ upstream_connect_time
++ Time taken to establish a connection with the backend.
++ + 22
++ upstream_header_time
++ Duration from the start of a connection to the first byte received from the backend.
++ + 23
++ upstream_response_time
++ Duration from the start of a connection to the last byte received from the backend.
++ + 24
++ region_id
++ Region ID.
++ + 25
++ all_upstream_response_time
++ Duration from the start of a connection to the last byte received from the backend, in seconds. When a retry occurs, the value is the total time taken.
++ + 26
++ errorType
++ API request error type. Options:
++
- 0: non-throttling error
- 1: throttling error
+ + 27
++ auth_type
++ API authentication mode.
++ + 28
++ access_model1
++ Authentication mode 1.
++ + 29
++ access_model2
++ Authentication mode 2. Enabling two-factor authentication will use the custom authorizer ID.
++ + 30
++ inner_time
++ APIG internal processing duration, in seconds.
++ + 31
++ proxy_protocol_vni
++ VPC endpoint virtual network ID.
++ + 32
++ proxy_protocol_vpce_id
++ VPC endpoint ID.
++ + 33
++ proxy_protocol_addr
++ Client IP address.
++ + 34
++ body_bytes_sent
++ API request body size, in bytes.
++ + 35
++ api_name
++ API name.
++ + 36
++ app_name
++ Name of the app used by a requester for authentication.
++ + 37
++ provider_app_id
++ App ID of an API.
++ + 38
++ provider_app_name
++ App name of an API.
++ + 39
++ custom_data_log1
++ Custom log field 1.
++ + 40
++ custom_data_log2
++ Custom log field 2.
++ + 41
++ custom_data_log3
++ Custom log field 3.
++ + 42
++ custom_data_log4
++ Custom log field 4.
++ + 43
++ custom_data_log5
++ Custom log field 5.
++ + 44
++ custom_data_log6
++ Custom log field 6.
++ + 45
++ custom_data_log7
++ Custom log field 7.
++ + 46
++ custom_data_log8
++ Custom log field 8.
++ + 47
++ custom_data_log9
++ Custom log field 9.
++ + 48
++ custom_data_log10
++ Custom log field 10.
++ + 49
++ response_source
++ Response source. Options:
++
- local: APIG
- remote: backend service
+ + 50
++ gzip_ratio
++ Ratio of the original response body size to the compressed response body size.
++ + 51
++ upstream_scheme
++ Backend protocol type.
++ + 52
++ group_id
++ Group ID.
++ + 53
++ apig_err_code
++ Gateway error code.
++ + + 54
++ function_urn
++ Function URN.
+++ diff --git a/docs/apig/umn/apig_03_0045.html b/docs/apig/umn/apig_03_0045.html new file mode 100644 index 00000000..1faccba1 --- /dev/null +++ b/docs/apig/umn/apig_03_0045.html @@ -0,0 +1,19 @@ + + + + + +++Parent topic: Monitoring & Analysis+Published API Calling
+++++ diff --git a/docs/apig/umn/apig_03_0046.html b/docs/apig/umn/apig_03_0046.html new file mode 100644 index 00000000..52372332 --- /dev/null +++ b/docs/apig/umn/apig_03_0046.html @@ -0,0 +1,197 @@ + + ++
+- Calling APIs
+
+- Response Headers
+
+- Error Codes
+
+Calling APIs
++You can call APIs opened by others in APIG.
++Usage Guidelines
+
- An API can be accessed 1000 times by using the debugging domain name allocated when the API's group is created.
- If the CA parameter is displayed in the Create SSL Certificate dialog box on the API Management > API Policies > SSL Certificates page of the APIG console, pay attention to the following restrictions when calling APIs:
+
- When calling an API with HTTP/1.0, do not use Transfer-Encoding in the request header.
- Do not use the CONNECT method.
- Do not use both Content-Length and Transfer-Encoding in the request header.
- Do not use spaces or control characters in the request line.
- Do not use spaces or control characters in the header name.
- Do not use spaces or control characters in the Host request header.
- Dot not use multiple Host parameters in the request header.
+Prerequisites
Before calling an API, ensure that the network of your service system can communicate with the API access domain name or address.
++
- If the service system and gateway are in the same VPC, the API can be directly accessed.
- If the service system and gateway are in different VPCs of a region, connect them using a peering connection. For details, see section "VPC Peering Connection" in the Virtual Private Cloud User Guide.
- If the service system and gateway are in different VPCs of different regions, create a cloud connection and load the two VPCs to connect them. For details, see section "Connecting VPCs in Different Regions" in the Cloud Connect Getting Started.
- If the service system and gateway are connected over the public network, ensure that the gateway has been bound with an EIP.
+Obtaining API Calling Information
Obtain API calling information from the API provider before you call an API.
++
- Obtain API request information
On the APIG console, choose API Management > APIs. On the APIs page, obtain the domain name, request method, and request path of the desired API. Click the API name to go to the APIs tab page, and obtain the basic information in the Frontend Configuration and Backend Configuration areas.
+- Obtain API authentication information
Obtain the request authentication information according to the API's authentication mode.
+ +++
+ + + Authentication Mode
++ Authentication Information
++ + App (signature)
++ Obtain the key and secret of a credential authorized for the API from the API provider, as well as the signing SDK.
++ + App (simple authentication)
++ Obtain the AppCode of a credential authorized for the API from the API provider.
++ + App (two-factor)
++ Obtain the information required for both app and custom authentication.
++ + App (app_secret)
++ Obtain the key and secret of a credential authorized for the API from the API provider.
++ + App (app_basic)
++ Obtain the key and secret of a credential authorized for the API from the API provider.
++ + IAM (token)
++ Obtain the username and password for the cloud platform.
++ + IAM (AK/SK)
++ Obtain the AK/SK of an account for the cloud platform and the signing SDK.
++ + IAM (two-factor)
++ Obtain the information required for both IAM and custom authentication
++ + Custom
++ Obtain the custom authentication information to carry in request parameters from the API provider.
++ + None
++ No authentication information required.
++ + + Third-party authorizer (API policy)
++ Obtain third-party authorizer information to carry in request parameters from the API provider.
++
- Credential key and secret
On the APIG console, choose API Management > Credentials. Click the name of a credential authorized for the target API, and obtain the key and secret on the credential details page.
+- Signing SDK
On the APIG console, choose Help Center > Using SDKs, and download the SDK of the desired language.
+- AppCode
On the APIG console, choose API Management > Credentials. Click the name of a credential authorized for the target API, and obtain an AppCode in the AppCodes area of the credential details page.
++Calling an API
+![]()
This section describes only the configuration of the request path and authentication parameters. For other parameters, such as timeout and SSL, configure them as required. To avoid service loss due to incorrect parameters, configure them by referring to the industry standards.
+
- Construct an API request. Example:
POST https://{Address}/{Path}?{Query} +{Header} + +{ + {Body} +}++
- POST: request method. Replace it with the request method obtained in Obtaining API Calling Information.
- {Address}: request address. Replace it with the domain name obtained in Obtaining API Calling Information. +
++
+ + + Scenario
++ Request Parameter Configuration
++ + Calling an API with a domain name
++ Call an API using the debugging domain name allocated to the API group or a domain name bound to the group. No additional configuration is required.
++ + Calling an API in the DEFAULT group with an IP address
++ Call an API in the DEFAULT group with an IP address. No additional configuration is required.
++ + + Calling an API in a custom group with an IP address
++ +
- To use an IP address to call an API that uses app authentication in a non-DEFAULT group,
+
- Set configuration parameters app_route and app_secret of the gateway to On. After app_route is enabled, a credential cannot be authorized to APIs that use the same request path and method.
- Add header parameters X-HW-ID and X-HW-APPKEY and set them to the key and secret of a credential authorized for the API.
NOTICE:+When calling an API through simple authentication (App authentication), you only need to add the header parameters X-Apig-AppCode and host to the request.
+- To use an IP address to call an API that does not use app authentication in a non-DEFAULT group, add the header parameter host.
- {Path}: request path. Replace it with the request path obtained in Obtaining API Calling Information.
- {Query}: (optional) query string in format "Parameter_name=Parameter_value", for example, limit=10. Separate multiple query strings with ampersands (&). For details, see the request parameters obtained in Obtaining API Calling Information.
- {Header}: request header parameter in format "Parameter_name:Parameter_value", for example, Content-Type:application/json. For details, see the request parameters obtained in Obtaining API Calling Information.
- {Body}: request body in JSON format. For details, see the request body description obtained in Obtaining API Calling Information.
+
- Add authentication information to the API request. +
++
+ + + Authentication Mode
++ Request Parameter Configuration
++ + App (signature)
++ Use the obtained SDK to sign the API request. For details, see section "Calling APIs Through App Authentication" in the API Gateway Developer Guide.
++ + App (simple authentication)
++ Add the header parameter X-Apig-AppCode and set the parameter value to the AppCode obtained in Obtaining API Calling Information. For details, see Getting Started.
++ + App (app_secret)
++ +
- Set the app_secret parameter to on on the Parameters tab of a gateway to enable app_secret authentication.
- Add the header parameter X-HW-ID and set the parameter value to the key obtained in Obtaining API Calling Information.
- Add the header parameter X-HW-AppKey and set the parameter value to the secret obtained in Obtaining API Calling Information.
+ + App (app_basic)
++ +
- To enable app_basic authentication, ensure that the app_basic parameter has been set to on on the Parameters tab of the gateway.
- Add the header parameter Authorization to the API request. The value is "Basic "+base64(appkey+":"+appsecret). appkey and appsecret are the key and secret obtained in Obtaining API Calling Information.
+ + App (two-factor)
++ Add the information required for both app and custom authentication to the API request.
++ + IAM (token)
++ Obtain a token from the cloud platform and add the header parameter X-Auth-Token with the token as the value. For details, see section "Token Authentication" in the API Gateway Developer Guide.
++ + IAM (AK/SK)
++ Use the obtained SDK to sign the API request. For details, see section "AK/SK Authentication" in the API Gateway Developer Guide.
++ + IAM (two-factor)
++ Add the information for both IAM and custom authentication to the API request.
++ + Custom
+ ++ Add the information required for custom authentication to the API request.
++ + None
+ ++ No authentication information required.
++ + + Third-party authorizer (API policy)
++ Obtain third-party authorizer information to carry in request parameters from the API provider.
+++ diff --git a/docs/apig/umn/apig_03_0047.html b/docs/apig/umn/apig_03_0047.html new file mode 100644 index 00000000..0e5870ac --- /dev/null +++ b/docs/apig/umn/apig_03_0047.html @@ -0,0 +1,85 @@ + + +++Parent topic: Published API Calling+Response Headers
++The following table describes the response headers that APIG adds to the response returned when an API is called.
+X-Apig-Mode: debug indicates API debugging information.
+ +++
+ + + Response Header
++ Description
++ Remarks
++ + X-Request-Id
++ Request ID.
++ Returned for all valid requests.
++ + X-Apig-Latency
++ Duration from the time when APIG receives a request to the time when the backend returns a message header.
++ Returned only when the request header contains X-Apig-Mode: debug.
++ + X-Apig-Upstream-Latency
++ Duration from the time when APIG sends a request to the backend to the time when the backend returns a message header.
++ Returned only when the request header contains X-Apig-Mode: debug and the backend type is not Mock.
++ + X-Apig-RateLimit-api
++ API request limit information.
+Example: remain:9,limit:10,time:10 second.
++ Returned only when the request header contains X-Apig-Mode: debug and a limit has been configured for the number of times the API can be called.
++ + X-Apig-RateLimit-user
++ User request limit information.
+Example: remain:9,limit:10,time:10 second.
++ Returned only when the request header contains X-Apig-Mode: debug and a limit has been configured for the number of times the API can be called by a user.
++ + X-Apig-RateLimit-app
++ Credential request limit information.
+Example: remain:9,limit:10,time:10 second.
++ Returned only when the request header contains X-Apig-Mode: debug and a limit has been configured for the number of times the API can be called by a credential.
++ + X-Apig-RateLimit-ip
++ IP address request limit information.
+Example: remain:9,limit:10,time:10 second.
++ Returned only when the request header contains X-Apig-Mode: debug and a limit has been configured for the number of times the API can be called by an IP address.
++ + + X-Apig-RateLimit-api-allenv
++ Default API request limit information.
+Example: remain:199,limit:200,time:1 second.
++ Returned only when the request header contains X-Apig-Mode: debug.
+++ diff --git a/docs/apig/umn/apig_03_0048.html b/docs/apig/umn/apig_03_0048.html new file mode 100644 index 00000000..b0fdbaf4 --- /dev/null +++ b/docs/apig/umn/apig_03_0048.html @@ -0,0 +1,811 @@ + + +++Parent topic: Published API Calling+Error Codes
++The following table lists the error codes that you may encounter when calling APIs.
++ +![]()
+
- For details about the error codes that may occur when you manage APIs, see section "Error Codes" in the API Gateway API Reference.
- If an error occurs when you use APIG, find the error message and description in the following table according to the error code, for example, APIG.0101. The error messages are subject to change without prior notice.
++
Table 1 Error codes + + + Error Code
++ Error Message
++ HTTP Status Code
++ Description
++ Solution
++ + APIG.0101
++ The API does not exist or has not been published in the environment.
++ 404
++ The API does not exist or has not been published in the environment.
++ Check whether the domain name, method, and path are consistent with those of the created API. Check whether the API has been published. If it has been published in a non-production environment, check whether the X-Stage header in the request is the environment name. Check whether the domain name used to call the API has been bound to the group to which the API belongs.
++ + APIG.0101
++ The API does not exist.
++ 404
++ The API request method does not exist.
++ Check whether the API request method is the same as the method defined by the API.
++ + APIG.0103
++ The backend does not exist.
++ 500
++ The backend service was not found.
++ Contact technical support.
++ + APIG.0104
++ The plug-ins do not exist.
++ 500
++ No plug-in configurations were found.
++ Contact technical support.
++ + APIG.0105
++ The backend configurations do not exist.
++ 500
++ No backend configurations were found.
++ Contact technical support.
++ + APIG.0106
++ Orchestration error.
++ 400
++ An orchestration error occurred.
++ Check whether the frontend and backend parameters of the API are correct.
++ + APIG.0107
++ The custom lua script encountered an unexpected error
++ 500
++ An unknown error occurred in the Lua script.
++ Contact technical support.
++ + APIG.0201
++ API request error.
++ 400
++ Invalid request parameters.
++ Set valid request parameters.
++ + APIG.0201
++ Request entity too large.
++ 413
++ The request body exceeds 12 MB.
++ Reduce the size of the request body.
++ + APIG.0201
++ Request URI too large.
++ 414
++ The request URI exceeds 32 KB.
++ Reduce the size of the request URI.
++ + APIG.0201
++ Request headers too large.
++ 494
++ The request headers are too large because one of them exceeds 32 KB or the total length exceeds 128 KB.
++ Reduce the size of the request headers.
++ + APIG.0201
++ Backend unavailable.
++ 502
++ The backend service is unavailable.
++ Check whether the backend address configured for the API is accessible.
++ + APIG.0201
++ Backend timeout.
++ 504
++ The backend service has timed out.
++ Increase the timeout duration of the backend service or shorten the processing time.
++ + APIG.0201
++ An unexpected error occurred
++ 500
++ An internal error occurred.
++ Contact technical support.
++ + APIG.0202
++ Backend unavailable
++ 502
++ The backend is unavailable.
++ Check whether the backend request protocol configured for the API is the same as the request protocol used by the backend service.
++ + APIG.0203
++ Backend timeout
++ 504
++ The backend service has timed out.
++ Increase the timeout duration of the backend service or shorten the processing time.
++ + APIG.0204
++ SSL protocol is not supported: TLSv1.1
++ 400
++ The SSL protocol version is not supported.
++ Use a supported SSL protocol version.
++ + APIG.0205
++ Verify client certificate failed
++ 400
++ Failed to verify the client certificate.
++ Check whether the client certificate is correct.
++ + APIG.0301
++ Incorrect IAM authentication information.
++ 401
++ The IAM authentication details are incorrect.
++ Check whether the token is correct.
++ + APIG.0302
++ The IAM user is not authorized to access the API.
++ 403
++ The IAM user is not allowed to access the API.
++ Check whether the user is controlled by a blacklist or whitelist.
++ + APIG.0303
++ Incorrect app authentication information.
++ 401
++ The app authentication details are incorrect.
++ Check whether the request method, path, query strings, and request body are consistent with those used for signing; check whether the date and time on the client are correct; and check whether the signing code is correct by referring to section "Calling APIs Through App Authentication" of the Developer Guide.
++ + APIG.0304
++ The app is not authorized to access the API.
++ 403
++ The app is not allowed to access the API.
++ Check whether the app has been authorized to access the API.
++ + APIG.0305
++ Incorrect authentication information.
++ 401
++ The authentication information is incorrect.
++ Check whether the authentication information is correct.
++ + APIG.0306
++ API access denied.
++ 403
++ Access to the API is not allowed.
++ Check whether you have been authorized to access the API.
++ + APIG.0307
++ The token must be updated.
++ 401
++ The token needs to be updated.
++ Obtain a new token from IAM.
++ + APIG.0308
++ The throttling threshold has been reached.
++ 429
++ The throttling threshold has been reached.
++ Try again after the throttling resumes. If the number of debugging domain requests per day is reached, bind an independent domain name to the service to which the API belongs.
++ + APIG.0310
++ The project is unavailable.
++ 403
++ The project is currently unavailable.
++ Select another project and try again.
++ + APIG.0311
++ Incorrect debugging authentication information.
++ 401
++ The debugging authentication details are incorrect.
++ Contact technical support.
++ + APIG.0312
++ Incorrect third-party authentication information,auth fail
++ 401
++ The authentication failed because the third-party authentication information is incorrect.
++ Check whether the identity information is correct.
++ + APIG.0313
++ Incorrect third-party authentication information,identities error
++ 401
++ The identity included in the third-party authentication information is incorrect.
++ Check whether the identity information is consistent with the identity source in the third-party authentication plug-in.
++ + APIG.0314
++ Incorrect third-party authentication information,access deny
++ 403
++ Access denied because the third-party authentication information is incorrect.
++ Contact technical support to check whether the request is a service request. If yes, increase the brute force threshold of the third-party authentication plug-in.
++ + APIG.0401
++ Unknown client IP address.
++ 403
++ The client IP address cannot be identified.
++ Contact technical support.
++ + APIG.0402
++ The IP address is not authorized to access the API.
++ 403
++ The IP address is not allowed to access the API.
++ Check whether the IP address is controlled by a blacklist or whitelist.
++ + APIG.0404
++ Access to the backend IP address has been denied.
++ 403
++ The backend IP address cannot be accessed.
++ Check whether the backend IP address or the IP address corresponding to the backend domain name is accessible.
++ + APIG.0405
++ The app is not accessed from a trusted IP address.
++ 403
++ The application is not accessed from a trusted IP address.
++ Check whether the source IP address is allowed or denied in the access control policy.
++ + APIG.0501
++ The app quota has been used up.
++ 405
++ The app quota has been reached.
++ Increase the app quota.
++ + APIG.0502
++ The app has been frozen.
++ 405
++ The app has been frozen.
++ Check whether your account balance is sufficient.
++ + APIG.0601
++ Internal server error.
++ 500
++ An internal error occurred.
++ Contact technical support.
++ + APIG.0602
++ Bad request.
++ 400
++ Invalid request.
++ Check whether the request is valid.
++ + APIG.0605
++ Domain name resolution failed.
++ 500
++ Domain name resolution failed.
++ Check whether the domain name is correct and has been bound to a correct backend address.
++ + APIG.0606
++ Failed to load the API configurations.
++ 500
++ API configurations could not be loaded.
++ Contact technical support.
++ + APIG.0607
++ The following protocol is supported: {xxx}
++ 400
++ The protocol is not supported. Only xxx is supported.
+xxx is subject to the actual value in the response.
++ Use HTTP or HTTPS to access the API.
++ + APIG.0608
++ Failed to obtain the admin token.
++ 500
++ The administrator account details cannot be obtained.
++ Contact technical support.
++ + APIG.0609
++ The VPC backend does not exist.
++ 500
++ The workload backend service cannot be found.
++ Contact technical support.
++ + APIG.0610
++ No backend available.
++ 502
++ No backend services are available.
++ Check whether all backend services are available. For example, check whether the API calling information is consistent with the actual configuration.
++ + APIG.0611
++ The backend port does not exist.
++ 500
++ The backend port was not found.
++ Contact technical support.
++ + APIG.0612
++ An API cannot call itself.
++ 500
++ An API cannot call itself.
++ Modify the backend configurations, and ensure that the number of layers the API is recursively called does not exceed 10.
++ + APIG.0613
++ The IAM service is currently unavailable.
++ 503
++ IAM is currently unavailable.
++ Contact technical support.
++ + APIG.0615
++ Incorrect third-party authentication VPC information
++ 500
++ Failed to obtain the load balance channel nodes for third-party authentication.
++ Check whether the load balance channel for third-party authentication is correctly configured.
++ + APIG.0616
++ Incorrect third-party authentication request information
++ 500
++ Failed to connect to the third-party authentication service.
++ Check whether the third-party authentication service is normal.
++ + APIG.0617
++ Incorrect third-party authentication response information
++ 500
++ Failed to obtain response from the third-party authentication service.
++ Check whether the third-party authentication service is normal.
++ + APIG.0705
++ Backend signature calculation failed.
++ 500
++ Backend signature calculation failed.
++ Contact technical support.
++ + APIG.0802
++ The IAM user is forbidden in the currently selected region
++ 403
++ The IAM user is disabled in the current region.
++ Contact technical support.
++ + APIG.2102
++ PublicKey is null
++ 400
++ The signature key is not found.
++ Contact technical support.
++ + APIG.2201
++ Appkey or SecretKey is invalid
++ 400
++ Invalid AppKey or SecretKey.
++ Check whether the AppKey and SecretKey in the request are correct.
++ + APIG.2202
++ Refresh token is invalid
++ 400
++ Invalid refresh token.
++ Check whether the refresh token is correct.
++ + APIG.2203
++ Access token is invalid
++ 400
++ Invalid access token.
++ Check whether the access token is correct.
++ + APIG.2204
++ ContentType invalid
++ 400
++ Invalid ContentType.
++ Check whether the ContentType is correct.
++ + APIG.2205
++ Auth parameter invalid
++ 400
++ Invalid authentication parameter.
++ Check whether the authentication parameters are correct.
++ + APIG.2206
++ Auth method invalid
++ 400
++ Invalid authentication mode.
++ Check whether the authentication mode is correct.
++ + APIG.2208
++ The length of through_data is out of range
++ 400
++ The length of through_data is out of range.
++ The maximum length of through_data is 300. Adjust through_data based on the actual situation.
++ + APIG.2209
++ The value of grant_type is not in enum List
++ 400
++ The value of grant_type is invalid.
++ The value of grant_type can only be client_credentials or refresh_token. Change it based on the actual situation.
++ + APIG.2210
++ Lack of grant_type
++ 400
++ The authorization type is missing.
++ Add grant_type.
++ + APIG.2211
++ Lack of client_id
++ 400
++ The client ID is missing.
++ Add a client ID.
++ + APIG.2212
++ Lack of client_secret
++ 400
++ The client secret is missing.
++ Add a client secret.
++ + APIG.2213
++ Lack of refresh_token
++ 400
++ The refresh token is missing.
++ Contact technical support.
++ + APIG.1001
++ Refresh token is expired
++ 401
++ The refresh token has expired.
++ Obtain another refresh token.
++ + APIG.1002
++ Access token is expired
++ 401
++ The access token has expired.
++ Obtain another access token.
++ + APIG.1003
++ App not match refresh token
++ 401
++ The app does not match the refresh token.
++ Check whether the client_id is correct.
++ + APIG.1004
++ App not exist
++ 401
++ The app does not exist.
++ Check whether the access token is correct.
++ + + APIG.1009
++ AppKey or AppSecret is invalid
++ 400
++ The AppKey or AppSecret is invalid.
++ Check whether the AppKey or AppSecret in the request is correct.
+++ diff --git a/docs/apig/umn/apig_03_0049.html b/docs/apig/umn/apig_03_0049.html new file mode 100644 index 00000000..364ca2dd --- /dev/null +++ b/docs/apig/umn/apig_03_0049.html @@ -0,0 +1,14 @@ + + +++Parent topic: Published API Calling+Permissions Management
+++ + diff --git a/docs/apig/umn/apig_03_0050.html b/docs/apig/umn/apig_03_0050.html new file mode 100644 index 00000000..7f8b83bb --- /dev/null +++ b/docs/apig/umn/apig_03_0050.html @@ -0,0 +1,64 @@ + + +Creating a User and Granting APIG Permissions
++This topic describes how to use Identity and Access Management (IAM) to implement fine-grained permissions control for your APIG resources. With IAM, you can:
++
- Create IAM users for employees based on your enterprise's organizational structure. Each IAM user will have their own security credentials for accessing APIG resources.
- Grant only the permissions required for users to perform a specific task.
- Entrust another account or cloud service to perform O&M on your APIG resources.
If your account does not require individual IAM users, skip this chapter.
+This section describes the procedure for granting permissions (see Figure 1).
++Prerequisites
Learn about the permissions (see Table 1) supported by APIG and choose policies or roles according to your requirements. ++++
Table 1 System-defined roles and policies supported by APIG + + + Role/Policy Name
++ Description
++ Type
++ Dependency
++ + APIG Administrator
++ Administrator permissions for APIG. Users granted these permissions can use all functions of API gateways.
++ System-defined role
++ If a user needs to create, delete, or change resources of other services, the user must also be granted administrator permissions of the corresponding services in the same project.
++ + APIG FullAccess
++ Full permissions for APIG. Users granted these permissions can use all functions of gateways.
++ System-defined policy
++ None
++ + + APIG ReadOnlyAccess
++ Read-only permissions for APIG. Users granted these permissions can only view gateways.
++ System-defined policy
++ None
++Process Flow
+ ++
- Create a user group and assign permissions.
Create a user group on the IAM console, and attach the APIG Administrator role or the APIG FullAccess policy to the group.
+- Create an IAM user.
Create a user on the IAM console and add the user to the group created in 1.
+- Log in and verify permissions.
Log in to the APIG console as the created user, and verify that the user has administrator permissions for APIG.
+++ diff --git a/docs/apig/umn/apig_03_0051.html b/docs/apig/umn/apig_03_0051.html new file mode 100644 index 00000000..c5858e1c --- /dev/null +++ b/docs/apig/umn/apig_03_0051.html @@ -0,0 +1,46 @@ + + +++Parent topic: Permissions Management+APIG Custom Policies
++Custom policies can be created to supplement the system-defined policies of APIG. For the actions that can be added to custom policies, see .
+You can create custom policies using one of the following methods:
++
- Visual editor: Select cloud services, actions, resources, and request conditions. This does not require knowledge of policy syntax.
- JSON: Edit JSON policies from scratch or based on an existing policy.
For operation details, see section "Creating a Custom Policy" in the Identity and Access Management User Guide. The following section contains examples of common APIG custom policies.
++Example Custom Policies
+
- Example 1: Allow users to create and debug APIs
{ + "Version": "1.1", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + " + apig:apis:create + apig:apis:debug + " + ] + } + ] +}+- Example 2: Deny API group creation
A policy with only "Deny" permissions must be used in conjunction with other policies to take effect. If the permissions assigned to a user contain both "Allow" and "Deny", the "Deny" permissions take precedence over the "Allow" permissions.
+The following method can be used if you need to assign permissions of the APIG FullAccess policy to a user but you want to prevent the user from creating API groups. Create a custom policy for denying API group creation, and attach both policies to the group to which the user belongs. Then, the user can perform all operations on API gateways except creating API groups. The following is an example of a deny policy:
+{ + "Version": "1.1", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + " + apig:apis:create + apig:apis:debug + " + ] + } + ] +}+++ diff --git a/docs/apig/umn/apig_03_0052.html b/docs/apig/umn/apig_03_0052.html new file mode 100644 index 00000000..c6a12720 --- /dev/null +++ b/docs/apig/umn/apig_03_0052.html @@ -0,0 +1,842 @@ + + +++Parent topic: Permissions Management+APIG Operations Recorded by CTS
+++Enabling CTS
If you want to collect, record, or query operation logs for APIG in common scenarios such as security analysis, audit, and problem locating, enable Cloud Trace Service (CTS). For details, see section "Enabling CTS" in the Cloud Trace Service User Guide.
+CTS provides the following functions:
++
- Recording audit logs
- Querying audit logs
- Dumping audit logs
- Encrypting trace files
- Enabling notifications of key operations
+Viewing Key Operations
With CTS, you can record operations associated with APIG for future query, audit, and backtracking.
+ +++
Table 1 APIG operations recorded by CTS + + + Operation
++ Resource Type
++ Trace Name
++ + Creating an API group
++ ApiGroup
++ createApiGroup
++ + Modifying an API Group
++ ApiGroup
++ updateApiGroup
++ + Deleting an API group
++ ApiGroup
++ deleteApiGroup
++ + Verifying an API group name
++ Swagger
++ CheckApiGroups
++ + Creating an environment
++ Environment
++ createEnvironment
++ + Modifying an environment
++ Environment
++ updateEnvironment
++ + Deleting an environment
++ Environment
++ deleteEnvironment
++ + Creating a variable
++ EnvVariable
++ CreateEnvironmentVariable
++ + Deleting a variable
++ EnvVariable
++ DeleteEnvironmentVariable
++ + Modifying a variable
++ EnvVariable
++ UpdateEnvironmentVariable
++ + Creating a request throttling policy
++ Throttle
++ CreateRequestThrottlingPolicy
++ + Modifying a request throttling policy
++ Throttle
++ UpdateRequestThrottlingPolicy
++ + Deleting a request throttling policy
++ Throttle
++ DeleteRequestThrottlingPolicy
++ + Creating an API
++ Api
++ CreateApi
++ + Modifying an API
++ Api
++ UpdateApi
++ + Deleting an API
++ Api
++ DeleteApi
++ + Publishing an API or taking an API offline
++ Api
++ CreateOrDeletePublishRecordForApi
++ + Verifying the API definition
++ Api
++ CheckApis
++ + Debugging an API
++ Api
++ DebugApi
++ + Publishing multiple APIs or taking APIs offline
++ Api
++ BatchPublishOrOfflineApi
++ + Switching API versions
++ Api
++ ChangeApiVersion
++ + Taking an API version offline
++ Api
++ DeleteApiByVersionId
++ + Creating a signature key
++ Signature
++ CreateSignatureKey
++ + Modifying a signature key
++ Signature
++ UpdateSignatureKey
++ + Deleting a signature key
++ Signature
++ DeleteSignatureKey
++ + Binding a signature key
++ SignatureBinding
++ AssociateSignatureKey
++ + Unbinding a signature key
++ SignatureBinding
++ DisassociateSignatureKey
++ + Binding a request throttling policy
++ ThrottleBinding
++ AssociateRequestThrottlingPolicy
++ + Unbinding a request throttling policy
++ ThrottleBinding
++ DisassociateRequestThrottlingPolicy
++ + Unbinding multiple request throttling policies
++ ThrottleBinding
++ BatchDisassociateThrottlingPolicy
++ + Creating a special request throttling configuration
++ ThrottleSpecial
++ CreateSpecialThrottlingConfiguration
++ + Modifying a special request throttling configuration
++ ThrottleSpecial
++ UpdateSpecialThrottlingConfiguration
++ + Deleting an excluded request throttling configuration
++ ThrottleSpecial
++ DeleteSpecialThrottlingConfiguration
++ + Authorizing apps
++ AppAuth
++ CreateAuthorizingApps
++ + Canceling authorization
++ AppAuth
++ CancelingAuthorization
++ + Binding a domain name
++ ApiGroup
++ AssociateDomain
++ + Adding a certificate to a domain name
++ ApiGroup
++ AssociateCertificate
++ + Modifying a domain name
++ ApiGroup
++ UpdateDomain
++ + Unbinding a domain name
++ ApiGroup
++ DisassociateDomain
++ + Deleting a domain certificate
++ ApiGroup
++ DisassociateCertificate
++ + Creating an access control policy
++ Acl
++ CreateAclStrategy
++ + Modifying an access control policy
++ Acl
++ UpdateAclStrategy
++ + Deleting an access control policy
++ Acl
++ DeleteAcl
++ + Deleting multiple access control policies
++ Acl
++ BatchDeleteAclV2
++ + Binding an access control policy to an API
++ AclBinding
++ CreateApiAclBinding
++ + Unbinding an access control policy from an API
++ AclBinding
++ DeleteApiAclBinding
++ + Unbinding multiple access control policies from APIs
++ AclBinding
++ BatchDeleteApiAclBinding
++ + Creating a custom authorizer
++ Authorizer
++ CreateCustomAuthorizer
++ + Modifying a custom authorizer
++ Authorizer
++ UpdateCustomAuthorizer
++ + Deleting a custom authorizer
++ Authorizer
++ DeleteCustomAuthorizer
++ + Exporting APIs
++ Swagger
++ ExportApiDefinitions
++ + Importing APIs
++ Swagger
++ ImportApiDefinitions
++ + Creating a VPC channel
++ Vpc
++ CreateVpcChannel
++ + Updating a VPC channel
++ Vpc
++ UpdateVpcChannel
++ + Deleting a VPC channel
++ Vpc
++ DeleteVpcChannel
++ + Adding or updating backend instances
++ Vpc
++ AddingBackendInstances
++ + Updating backend instances
++ Vpc
++ UpdateBackendInstances
++ + Removing a backend server
++ Vpc
++ DeleteBackendInstance
++ + Enabling backend servers
++ Vpc
++ BatchEnableMembers
++ + Disabling backend servers
++ Vpc
++ BatchDisableMembers
++ + Modifying VPC channel health check
++ Vpc
++ UpdateHealthCheck
++ + Adding or updating a backend server group of a VPC channel
++ Vpc
++ CreateMemberGroup
++ + Deleting a backend server group of a VPC channel
++ Vpc
++ DeleteMemberGroup
++ + Updating a Backend Server Group of a VPC Channel
++ Vpc
++ UpdateMemberGroup
++ + Creating a response for an API group
++ ApiGroup
++ CreateGatewayResponse
++ + Modifying a response of an API group
++ ApiGroup
++ UpdateGatewayResponse
++ + Deleting a response of an API group
++ ApiGroup
++ DeleteGatewayResponse
++ + Modifying the response of an error type defined for an API group
++ ApiGroup
++ UpdateGatewayResponseType
++ + Deleting the response of an error type defined for an API group
++ ApiGroup
++ DeleteGatewayResponseType
++ + Configuring a feature for a gateway
++ Feature
++ CreateFeatureV2
++ + Creating a dedicated gateway (Pay-per-use)
++ Instance
++ CreateInstance
++ + Updating a dedicated gateway
++ Instance
++ UpdateInstance
++ + Binding an EIP to a gateway or updating the EIP of a gateway
++ Instance
++ AddEip
++ + Unbinding the EIP of a gateway
++ Instance
++ RemoveEip
++ + Enabling public outbound access for a gateway
++ Instance
++ AddEngressEip
++ + Updating the public outbound access bandwidth of a gateway
++ Instance
++ UpdateEngressEip
++ + Disabling public outbound access for a gateway
++ Instance
++ RemoveEngressEip
++ + Enabling public inbound access
++ Instance
++ AddIngressEip
++ + Updating the public inbound access bandwidth of a gateway
++ Instance
++ UpdateIngressEip
++ + Disabling public inbound access for a gateway
++ Instance
++ RemoveIngressEip
++ + Deleting a dedicated gateway
++ Instance
++ DeleteInstances
++ + Modifying the specifications of a pay-per-use gateway
++ Instance
++ CreatePostPayResizeOrder
++ + Accepting or rejecting a VPC endpoint connection
++ vpc-endpoint
++ AcceptOrRejectEndpointConnections
++ + Adding whitelist records for a VPC endpoint service
++ vpc-endpoint
++ AddEndpointPermissions
++ + Deleting whitelist records of a VPC endpoint service
++ vpc-endpoint
++ DeleteEndpointPermissions
++ + Batch adding or deleting gateway tags
++ Instance
++ BatchCreateOrDeleteInstanceTags
++ + Importing a microservice
++ Microservice
++ ImportMicroservice
++ + Adding an SSL certificate
++ SslCertificate
++ CreateCertificate
++ + Binding a domain name with SSL certificates
++ ApiGroup
++ BatchAssociateCerts
++ + Unbinding the SSL certificates of a domain name
++ ApiGroup
++ BatchDisassociateCerts
++ + Deleting an SSL certificate
++ SslCertificate
++ DeleteCertificate
++ + Modifying an SSL certificate
++ SslCertificate
++ UpdateCertificate
++ + Binding an SSL certificate to a domain name
++ Certificate
++ BatchAssociateDomains
++ + Unbinding an SSL certificate from a domain name
++ Certificate
++ BatchDisassociateDomains
++ + Creating a plug-in
++ Plugin
++ CreatePlugin
++ + Modifying a plug-in
++ Plugin
++ UpdatePlugin
++ + Deleting a plug-in
++ Plugin
++ DeletePlugin
++ + Binding a plug-in to an API
++ Plugin
++ AttachApiToPlugin
++ + Binding a plug-in to an API
++ Plugin
++ AttachPluginToApi
++ + Unbinding an API from a plug-in
++ Plugin
++ DetachApiFromPlugin
++ + Unbinding a plug-in from an API
++ Plugin
++ DetachPluginFromApi
++ + Creating an app
++ App
++ CreateAnApp
++ + Modifying an app
++ App
++ UpdateApp
++ + Deleting an app
++ App
++ DeleteAppV2
++ + Resetting an Appsecret
++ App
++ ResettingAppSecret
++ + Verifying an app
++ App
++ CheckApp
++ + Creating an AppCode
++ AppCode
++ CreateAppCode
++ + Generating an AppCode
++ AppCode
++ CreateAppCodeAuto
++ + Deleting an AppCode
++ AppCode
++ DeleteAppCode
++ + Configuring access control settings for an app
++ AppAcl
++ UpdateAppAcl
++ + Deleting access control settings of an app
++ AppAcl
++ DeleteAppAcl
++ + Creating a credential quota
++ AppQuota
++ CreateAppQuota
++ + Modifying a credential quota
++ AppQuota
++ UpdateAppQuota
++ + Deleting a credential quota
++ AppQuota
++ DeleteAppQuota
++ + Binding a credential quota with credentials
++ AppQuotaBinding
++ AssociateAppsForAppQuota
++ + + Unbinding a credential quota from a credential
++ AppQuotaBinding
++ DisassociateAppQuotaWithApp
++Disabling CTS
Disable CTS by following the procedure in section "Deleting a Tracker" in the Cloud Trace Service User Guide.
+++ diff --git a/docs/apig/umn/apig_03_0053.html b/docs/apig/umn/apig_03_0053.html new file mode 100644 index 00000000..5383b26f --- /dev/null +++ b/docs/apig/umn/apig_03_0053.html @@ -0,0 +1,25 @@ + + +++Parent topic: Auditing+Querying Real-Time Traces
+++Scenarios
After you enable CTS and the management tracker is created, CTS starts recording operations on cloud resources. CTS stores operation records generated in the last seven days.
+This section describes how to query and export operation records of the last seven days on the CTS console.
+ ++Viewing Real-Time Traces in the Trace List
+
- Log in to the management console.
- Click
in the upper left corner and choose Management & Deployment > Cloud Trace Service. The CTS console is displayed.
- Choose Trace List in the navigation pane on the left.
- Set filters to search for your desired traces, as shown in Figure 1. The following filters are available: +
++
- Trace Type, Trace Source, Resource Type, and Search By: Select a filter from the drop-down list.
+
- If you select Resource ID for Search By, specify a resource ID.
- If you select Trace name for Search By, specify a trace name.
- If you select Resource name for Search By, specify a resource name.
- Operator: Select a user.
- Trace Status: Select All trace statuses, Normal, Warning, or Incident.
- Time range: You can query traces generated during any time range in the last seven days.
- Click Export to export all traces in the query result as a CSV file. The file can contain up to 5000 records.
- Click Query.
- On the Trace List page, you can also export and refresh the trace list.
+
- Click Export to export all traces in the query result as a CSV file. The file can contain up to 5000 records.
- Click
to view the latest information about traces.
- Click
on the left of a trace to expand its details. +
+ +
- Click View Trace in the Operation column. The trace details are displayed.
+
- For details about key fields in the trace structure, see section "Trace References" > "Trace Structure" and section "Trace References" > "Example Traces" in the CTS User Guide.
++ diff --git a/docs/apig/umn/apig_03_0054.html b/docs/apig/umn/apig_03_0054.html new file mode 100644 index 00000000..43ac26f5 --- /dev/null +++ b/docs/apig/umn/apig_03_0054.html @@ -0,0 +1,175 @@ + + +++Parent topic: Auditing+Request Throttling 2.0
++A request throttling 2.0 policy limits the number of times that an API can be called within a specific time period. Parameter-based, basic, and excluded throttling is supported.
++
- Basic throttling
Throttle requests by API, user, credential, or source IP address. This function is equivalent to a traditional request throttling policy (see Request Throttling) but is incompatible with it.
+- Parameter-based throttling
Throttle requests based on headers, path parameter, method, query strings, or system parameters.
+- Excluded throttling +
+![]()
If your gateway does not support this policy, contact technical support to upgrade the gateway to the latest version.
++Usage Guidelines
+
- You have understood the guidelines for policy creation and API binding.
- A request throttling policy becomes invalid if a request throttling 2.0 policy is bound to the same API as the existing one.
- You can define a maximum of 100 parameter-based throttling rules. The parameter name can contain 1 to 32 characters.
- The policy content cannot exceed 65,535 characters.
+Parameter Description
+++Example Script
{ + "scope": "basic", + "default_interval": 60, + "default_time_unit": "second", + "api_limit": 100, + "app_limit": 50, + "user_limit": 50, + "ip_limit": 20, + "specials": [ + { + "type": "app", + "policies": [ + { + "key": "e9230d70c749408eb3d1e838850cdd23", + "limit": 10 + } + ] + }, + { + "type": "user", + "policies": [ + { + "key": "878f1b87f71c40a7a15db0998f358bb9", + "limit": 10 + } + ] + } + ], + "algorithm": "counter", + "parameters": [ + { + "id": "3wuj354lpptv0toe0", + "value": "reqPath", + "type": "path", + "name": "reqPath" + }, + { + "id": "53h7e7j11u38l3ocp", + "value": "method", + "type": "method", + "name": "method" + }, + { + "id": "vv502bnb6g40td8u0", + "value": "Host", + "type": "header", + "name": "Host" + } + ], + "rules": [ + { + "match_regex": "[\"Host\",\"==\",\"www.abc.com\"]", + "rule_name": "u8mb", + "time_unit": "second", + "interval": 2, + "limit": 5 + } + ] +} ++++ diff --git a/docs/apig/umn/apig_03_0055.html b/docs/apig/umn/apig_03_0055.html new file mode 100644 index 00000000..54d3b418 --- /dev/null +++ b/docs/apig/umn/apig_03_0055.html @@ -0,0 +1,100 @@ + + +++Parent topic: API Policies+SSL Certificates
++API groups that contain HTTPS-compatible APIs must have their independent domain names bound with SSL certificates. SSL certificates are used for data encryption and identity verification, and support both one-way and two-way authentication.
++
- One-way authentication: When connecting to the server, a client verifies whether the server is correct. +
- Two-way authentication: When connecting to a server, a client verifies the server and the server also verifies the client. +
+Prerequisites
+
- Only SSL certificates in PEM format are supported.
- SSL certificates support only the RSA, ECDSA, and DSA encryption algorithms.
+Adding an SSL Certificate
+
- Go to the APIG console.
- Select a dedicated gateway at the top of the navigation pane.
- In the navigation pane, choose API Management > API Policies.
- On the SSL Certificates tab, click Create SSL Certificate.
+
++
Table 1 SSL certificate configuration + + + Parameter
++ Description
++ + Name
++ Enter an SSL certificate name that conforms to specific rules to facilitate search.
++ + Gateways Covered
++ +
- Current: The certificate will be displayed only for the current gateway.
- All: The certificate will be displayed for all gateways.
+ + Content
++ SSL certificate content in PEM format.
+Open the target PEM certificate file using Notepad or other tools, and copy the certificate content to Content.
+If the certificate is not in PEM format, convert it to this format.
++ + Key
++ SSL certificate key in PEM format.
+Open the KEY or PEM private key file using Notepad or other tools, and copy the private key to Key.
++ + + CA
++ For two-way authentication, you need to enter the CA certificate to verify both the server and client certificates. After the CA certificate is uploaded, the independent domain name needs to be bound to an SSL certificate to enable two-way authentication. Open the CA certificate file (.pem format) corresponding to the preceding certificate content as a text file and copy the CA content to CA.
+If the certificate is not in PEM format, convert it to this format.
+NOTE:+If your gateway does not support CA certificates, contact customer service to upgrade the gateway.
+- Click OK. The SSL certificate is added.
+Converting Certificate Format to PEM
+++
+ + + Format
++ Converting with OpenSSL
++ + CER/CRT
++ Rename the certificate file cert.crt cert.pem.
++ + PFX
++ +
- Run the private key export command. For example, run the following command to convert cert.pfx into key.pem:
openssl pkcs12 -in cert.pfx -nocerts -out key.pem
+- Run the certificate export command. For example, run the following command to convert cert.pfx into cert.pem:
openssl pkcs12 -in cert.pfx -nokeys -out cert.pem
++ + P7B
++ +
- Run the certificate conversion command. For example, run the following command to convert cert.p7b into cert.cer:
openssl pkcs7 -print_certs -in cert.p7b -out cert.cer
+- Rename the certificate file cert.cer cert.pem.
+ + + DER
++ +
- Run the private key export command. For example, run the following command to convert privatekey.der into privatekey.pem:
openssl rsa -inform DER -outform PEM -in privatekey.der -out privatekey.pem
+- Run the certificate export command. For example, run the following command to convert cert.cer into cert.pem:
openssl x509 -inform der -in cert.cer -out cert.pem
++Updating an SSL Certificate
On the certificate list page, locate the certificate to be updated, click Modify in the Operation column, and modify the certificate information.
++
- Updating the SSL certificate does not affect API calling.
- If the certificate to be updated has been bound to an independent domain name, all clients that access the domain name can view the updated certificate.
- If the updated SSL certificate has been bound to an independent domain name, the client authentication (HTTPS two-way authentication) is disabled by default when a CA certificate is added to the updated content.
+Follow-Up Operations
After creating a certificate, bind it to an independent name of an API group.
+++ diff --git a/docs/apig/umn/apig_03_0056.html b/docs/apig/umn/apig_03_0056.html new file mode 100644 index 00000000..8189ce93 --- /dev/null +++ b/docs/apig/umn/apig_03_0056.html @@ -0,0 +1,43 @@ + + +++Parent topic: API Policies+Creating a Credential and Binding It to APIs
++For APIs that use app authentication, create credentials to generate credential IDs and key/secret pairs. When calling such an API, bind a credential to the API, use the key/secret pair to replace that in the SDK so that APIG can authenticate your identity. For details about app authentication, see the API Gateway Developer Guide.
++![]()
+
- APIs that use IAM, custom authentication or require no authentication do not need credentials.
- You can create a maximum of 50 credentials for each gateway.
+Creating a Credential
- Go to the APIG console.
- Select a dedicated gateway at the top of the navigation pane.
+
- In the navigation pane, choose API Management > Credentials.
- Click Create Credential and set credential information.
+
++
Table 1 Credential information + + + Parameter
++ Description
++ + Name
++ Credential name.
++ + + Description
++ Description about the credential.
++![]()
You can customize AppKeys (keys) and AppSecrets (secrets). An AppKey is an automatically generated identifier, which is globally unique. You are not advised to customize one unless it is necessary.
+- Click OK.
+
- After the credential is created, its name and ID are displayed on the Credentials page.
- Click the credential name and view the key and secret.
+Binding a Credential to APIs
+
- On the Credentials page, click the name of the target credential.
- In the APIs area, click Bind to APIs.
- Select an environment, API group, and APIs.
- Click OK.
To unbind an API, click Unbind in the row that contains the API.
++![]()
A credential can be bound to multiple APIs that use app authentication, and each such API can be bound with multiple credentials.
+++ diff --git a/docs/apig/umn/apig_03_0057.html b/docs/apig/umn/apig_03_0057.html new file mode 100644 index 00000000..f76952e9 --- /dev/null +++ b/docs/apig/umn/apig_03_0057.html @@ -0,0 +1,13 @@ + + +++Parent topic: Credentials+Resetting Secret
++Reset the secret of a credential as necessary. After resetting, the original secret becomes invalid and APIs to which the credential is bound cannot be called. To call the APIs, update the secret in the SDK. The key is unique and cannot be reset.
++Procedure
- Go to the APIG console.
- Select a dedicated gateway at the top of the navigation pane.
- In the navigation pane, choose API Management > Credentials.
+
- Click the name of the target credential.
- Click Reset Secret.
- Click OK.
++ diff --git a/docs/apig/umn/apig_03_0058.html b/docs/apig/umn/apig_03_0058.html new file mode 100644 index 00000000..16f0b93b --- /dev/null +++ b/docs/apig/umn/apig_03_0058.html @@ -0,0 +1,43 @@ + + +++Parent topic: Credentials+Adding an AppCode for Simple Authentication
++AppCodes are identity credentials of a credential used to call APIs in simple authentication mode. In this mode, the X-Apig-AppCode parameter (whose value is an AppCode on the credential details page) is added to the HTTP request header for quick response. APIG verifies only the AppCode and the request content does not need to be signed.
+When an API is called using app authentication and simple authentication is enabled for the API, the key and secret can be used to sign and verify the API request. AppCodes can also be used for simple authentication.
++![]()
+
- For security purposes, simple authentication only supports API calls over HTTPS or gRPCS.
- You can create a maximum of five AppCodes for each credential.
+Generating an AppCode
- Go to the APIG console.
- Select a dedicated gateway at the top of the navigation pane.
- In the navigation pane, choose API Management > Credentials.
+
- Click the name of the target credential.
- Under AppCodes, click Add AppCode.
- Configure AppCode information and click OK.
+
++
Table 1 AppCode configuration + + + Parameter
++ Description
++ + AppCode Type
++ Select the method for generating an AppCode.
++
- Automatically generated: An AppCode is generated by the system.
- Custom: Specify an AppCode.
+ + + AppCode
++ Enter an AppCode if you set AppCode Type to Custom.
++Using AppCode for Simple Authentication of API Requests
+
- When creating an API, set Authentication Mode to App and enable Simple Authentication.
+![]()
After you enable simple authentication for an existing API, you need to publish the API again to make the configuration take effect.
+- Bind a credential to the API.
- When sending a request, add the X-Apig-AppCode parameter to the request header and omit the request signature.
For example, when using curl, add the X-Apig-AppCode parameter to the request header and set the parameter value to the generated AppCode.
+curl -X GET "https://api.exampledemo.com/testapi" -H "content-type: application/json" -H "host: api.exampledemo.com" -H "X-Apig-AppCode: xhrJVJKABSOxc7d***********FZL4gSHEXkCMQC"+++ diff --git a/docs/apig/umn/apig_03_0059.html b/docs/apig/umn/apig_03_0059.html new file mode 100644 index 00000000..c22e7438 --- /dev/null +++ b/docs/apig/umn/apig_03_0059.html @@ -0,0 +1,49 @@ + + +++Parent topic: Credentials+Binding a Credential Quota Policy
++A credential quota policy limits the number of API calls that a credential can make during a specified period.
++Procedure
- Go to the APIG console.
- Select a gateway at the top of the navigation pane.
+
- In the navigation pane, choose API Management > Credentials.
- Click the name of the target credential.
- In the Credential Quota Policies area, click Bind.
- Specify the policy type.
+ +
- Existing policy: Select a policy.
- New policy: Configure a policy by referring to Table 1.
++
Table 1 Credential quota policy configuration + + + Parameter
++ Description
++ + Name
++ Enter a credential quota policy name that conforms to specific rules to facilitate search.
++ + Effective On
++ Time when the quota policy takes effect. For example, if Effective On is set to Aug 8, 2020 05:05:00 and Period is set to 1 hour, the quota policy takes effect on Aug 8, 2020 05:05:00. The period from the fifth minute of an hour to the fifth minute of the next hour is a cycle, for example, 05:05:00-06:05:00.
++ + Period
++ Period in which the quota policy is applied. The unit can be second, minute, hour, or day. This parameter must be used along with Max. API Requests to limit the total number of times an API can be called by a client within the specified period.
++ + Max. API Requests
++ The maximum number of times that an API can be called by a client. This parameter must be used along with Period.
++ + + Description
++ Description about the credential quota policy.
+- After the configuring is complete, click OK.
++ diff --git a/docs/apig/umn/apig_03_0060.html b/docs/apig/umn/apig_03_0060.html new file mode 100644 index 00000000..a488745c --- /dev/null +++ b/docs/apig/umn/apig_03_0060.html @@ -0,0 +1,34 @@ + + +++Parent topic: Credentials+Binding an Access Control Policy
++As a protection mechanism for backend services, access control policies control the client (API caller) IP addresses that can access APIs. You can bind an access control policy to allow or deny access of specified IP addresses to an API.
++Procedure
- Go to the APIG console.
- Select a gateway at the top of the navigation pane.
+
- In the navigation pane, choose API Management > Credentials.
- Click the name of the target credential.
- In the Access Control Policy area, click Bind.
- Configure the policy information.
+
++
Table 1 Access control policy configuration + + + Parameter
++ Description
++ + Effect
++ Access control type. Options:
++
- Allow: Only clients with specified IP addresses are allowed to call APIs to which the credential is bound.
- Deny: Clients with specified IP addresses are not allowed to call APIs to which the credential is bound.
+ + + IP Addresses
++ Click Add IP Address to add IP addresses.
+- After the configuring is complete, click OK.
++ diff --git a/docs/apig/umn/apig_03_0061.html b/docs/apig/umn/apig_03_0061.html new file mode 100644 index 00000000..58625114 --- /dev/null +++ b/docs/apig/umn/apig_03_0061.html @@ -0,0 +1,115 @@ + + +++Parent topic: Credentials+Kafka Log Push
++Kafka log push policies push calling logs of open APIs to Kafka for analysis.
++![]()
If your gateway does not support this policy, contact technical support to upgrade the gateway to the latest version.
++Usage Guidelines
+
- You have understood the guidelines for policy creation and API binding.
- A maximum of five Kafka log push policies can be created for a gateway.
- APIs bound with a Kafka log push policy will deteriorate in performance by 30%.
+Configuration Parameters
+++
Table 1 Parameter description + + + Parameter
++ Description
++ + Policy Information
++ + Broker Address
++ Connection address of the target Kafka. Separate multiple addresses with commas (,).
++ + Topic
++ Topic of the target Kafka to report logs to.
++ + Key
++ Partition of Kafka for storing logs as an ordered message queue. If this parameter is left blank, logs are stored in different partitions.
++ + Retry
++ Configuration for retrying when logs fail to be pushed to Kafka.
++
- Retry Times: the number of retry attempts in case of a failure. Enter 0 to 5.
- Retry Interval: the interval of retry attempts in case of a failure. Enter 1 to 10 seconds.
+ + SASL Configuration
++ + Security Protocol
++ Protocol used for connecting to the target Kafka.
++
- PLAINTEXT: user authentication protocol of the default access point
- SASL_PLAINTEXT: SASL user authentication protocol
- SASL_SSL: SSL user authentication protocol
+ + Message Tx/Rx Mechanism
++ Message transmission and receiving mechanism of the target Kafka. The default value is PLAIN.
++ + SASL Username
++ This parameter is available only if Security Protocol is set to SASL_PLAINTEXT or SASL_SSL.
+Username used for SASL or SSL authentication.
++ + SASL Password
++ This parameter is available only if Security Protocol is set to SASL_PLAINTEXT or SASL_SSL.
+User password used for SASL or SSL authentication.
++ + Confirm SASL Password
++ This parameter is available only if Security Protocol is set to SASL_PLAINTEXT or SASL_SSL.
+Enter the SASL password again.
++ + Certificate Content
++ This parameter is available only if Security Protocol is set to SASL_SSL.
+CA certificate used for SSL authentication.
++ + Metadata Configuration
++ + System Metadata
++ System fields that need to be included in pushed logs.
+By default, the start_time, request_id, client_ip, request_time, http_status, scheme, request_method, host, uri, upstream_addr, upstream_status, upstream_response_time, http_x_forwarded_for, http_user_agent, and error_type fields are carried in logs. You can also specify other system fields that need to be included.
++ + Request Data
++ API request information that needs to be included in pushed logs.
++
- The log contains the request header: Specify a header that needs to be included. Separate multiple headers with commas (,). The asterisk (*) can be used as a wildcard.
- The log contains the request QueryString: Specify a query string that needs to be included. Separate multiple query strings with commas (,). The asterisk (*) can be used as a wildcard.
- The log contains the request body: If this option is selected, logs will contain the body of API requests.
+ + Response Data
++ API response information that needs to be included in pushed logs.
++
- The log contains the response header: Specify a header that needs to be included. Separate multiple headers with commas (,). The asterisk (*) can be used as a wildcard.
- The log contains the response body: If this option is selected, logs will contain the body of API request responses.
+ + + Customized Authentication
++ Custom authentication information that needs to be included in pushed logs.
++
- Frontend: Enter a response field of frontend authentication that needs to be included. Separate multiple fields with commas (,).
- Backend: Enter a response field of backend authentication that needs to be included. Separate multiple fields with commas (,).
++ diff --git a/docs/apig/umn/apig_03_0063.html b/docs/apig/umn/apig_03_0063.html new file mode 100644 index 00000000..e4bde602 --- /dev/null +++ b/docs/apig/umn/apig_03_0063.html @@ -0,0 +1,46 @@ + + +++Parent topic: API Policies+Managing VPC Endpoints
++VPC endpoints are secure and private channels for connecting VPCs to VPC endpoint services.
+APIs can be exposed and accessed across VPCs in the same region of the same cloud.
+Figure 1 Cross-VPC access in the same region++Procedure
+
- Go to the APIG console.
- In the navigation pane, choose Gateways.
- Click Access Console or the name of the target gateway.
- Click VPC Endpoints to view details. For details, see section "VPC Endpoints" in the VPC Endpoint User Guide.
+
++
Table 1 VPC endpoint information + + + Parameter
++ Description
++ + VPC Endpoint Service
++ Display name of the VPC endpoint service in the format "{region}.{VPC endpoint service name}.{VPC endpoint service ID}". You can set the VPC endpoint service name when buying a gateway or later on the VPC Endpoints tab of the gateway.
++ + Connections
++ VPC endpoints connected to the gateway. If you need a new VPC endpoint, click Create VPC Endpoint.
++
- VPC Endpoint ID: ID of a VPC endpoint.
- Packet ID: identifier of the VPC endpoint ID.
- Status: status of the VPC endpoint.
For details about VPC endpoint statuses, see section "What Are Statuses of VPC Endpoint Services and VPC Endpoints?" in the VPC Endpoint User Guide.
+- Owner: account ID. of the VPC endpoint creator. To obtain the account ID, see "Obtaining an Account Name and Account ID" in the API Gateway API Reference.
- Created: time when the VPC endpoint is created.
- Operation: whether to allow the VPC endpoint to connect to the VPC endpoint service. Accept or reject connection from the VPC endpoint to the VPC endpoint service.
NOTICE:+Once you reject the connection, services that run using the connection may be affected. Exercise caution.
++ + + Permissions
++ Specify accounts allowed to access using the VPC endpoints by adding the account IDs to the whitelist.
+Click Add Account and enter an account ID. To obtain the account ID, see "Obtaining an Account Name and Account ID" in the API Gateway API Reference.
++
- Account ID: ID of an account allowed to access using the VPC endpoints.
- Created: time when the whitelist is created.
- Operation: Manage access of the account from VPC endpoints. To forbid access of the account, remove it from the whitelist.
++ diff --git a/docs/apig/umn/apig_03_0064.html b/docs/apig/umn/apig_03_0064.html new file mode 100644 index 00000000..3c428ec1 --- /dev/null +++ b/docs/apig/umn/apig_03_0064.html @@ -0,0 +1,17 @@ + + +++Parent topic: Gateway Management+Modifying Specifications
++If the specifications of a gateway cannot meet your service requirements, upgrade the specifications.
++![]()
+
- During the specification change, the persistent connection is intermittently disconnected and needs to be re-established. You are advised to change the specification during off-peak hours.
- Specifications can be upgraded but cannot be downgraded.
- Changing the gateway edition will also change the private network access IP addresses. Modify your firewall or whitelist configuration if necessary for service continuity. Do not perform any other operations on the gateway.
+Procedure
- Go to the APIG console.
- In the navigation pane, choose Gateways.
+
- Choose More > Modify Specifications on the right of the target gateway.
- Select an edition and click Next. For details about the gateway parameters, see Table 1.
- Confirm the configuration, read and confirm your acceptance of the service agreement, and click Pay Now. The upgrade takes 15 to 30 minutes to complete.
+![]()
+
- For pay-per-use gateways, pay for what you use without needing to pay for any extra fees.
++ diff --git a/docs/apig/umn/apig_03_0065.html b/docs/apig/umn/apig_03_0065.html new file mode 100644 index 00000000..2c4e2b21 --- /dev/null +++ b/docs/apig/umn/apig_03_0065.html @@ -0,0 +1,13 @@ + + +++Parent topic: Gateway Management+Auditing
+ + + diff --git a/docs/apig/umn/apig_03_0067.html b/docs/apig/umn/apig_03_0067.html new file mode 100644 index 00000000..ff04453c --- /dev/null +++ b/docs/apig/umn/apig_03_0067.html @@ -0,0 +1,604 @@ + + +Importing APIs
++You can import Swagger and OpenAPI APIs to a new or existing API group on APIG. Before importing APIs, complete the extended definition of APIG.
++Precautions for Importing APIs to a New Group
When you import APIs to a new API group, the system creates an API group.
+This function is suitable for importing new APIs to APIG.
+Before importing APIs, ensure that the following requirements are met:
++
- Your API group and API quotas are sufficient.
- Use the title property in Swagger info and OpenAPI info to specify an API group name. The name of a new API group cannot be the same as that of an existing one.
- If a conflict exists when you import APIs, the former API is imported successfully and the latter API cannot be imported. For example, if two APIs with the same name or request path exist in the imported API definition, a success message is displayed for the first imported API, and a failure message is displayed for the API to be imported subsequently.
- If Extended Definition Overwrite is selected, the extended definition items (access control and request throttling policies) of an imported API will overwrite the existing extended definition items with the same name.
- Imported APIs will not be automatically published in an environment. You can choose to publish them immediately or later.
+Precautions for Importing APIs to an Existing Group
When you import APIs to a specified API group, the system adds them to the API group while retaining the existing APIs.
+This function is suitable for importing new or modified APIs to an existing API group.
+Before importing APIs, ensure that the following requirements are met:
++
- Your API quota is sufficient.
- If the definition of an API you are importing is the same as that of an existing API, you can overwrite the existing API or retain it. If you leave the existing API alone, the new API will not be imported.
- If Extended Definition Overwrite is selected, the extended definition items (access control and request throttling policies) of an imported API will overwrite the existing extended definition items with the same name.
- Imported APIs will not be automatically published in an environment. You can choose to publish them immediately or later.
+Procedure
+
- Go to the APIG console.
- Select a dedicated gateway at the top of the navigation pane.
- Choose API Management > APIs.
- Click Import APIs. For details, see Importing an API Design File.
You can also import APIs to APIG by referring to the following examples: +++Importing an HTTP Backend Service API
Import the request parameter definition of an HTTP backend service API that uses the GET method and is accessed through IAM authentication.
+Swagger example:
+swagger: "2.0" +info: + title: "importHttpEndpoint10" + description: "import apis" + version: "1.0" +host: "api.account.com" +paths: + '/http/{userId}': + get: + operationId: "getUser3" + description: "get user by userId" + security: + - apig-auth-iam: [] + schemes: + - https + parameters: + - name: "test" + description: "authorization token" + type: "string" + in: "header" + required: true + - name: "userId" + description: "user id" + type: "string" + in: "path" + required: true + responses: + "200": + description: "user information" + x-apigateway-request-type: "public" + x-apigateway-cors: true + x-apigateway-is-send-fg-body-base64: true + x-apigateway-match-mode: "NORMAL" + x-apigateway-backend: + type: "HTTP" + parameters: + - name: "userId" + value: "userId" + in: "query" + origin: "REQUEST" + description: "user id" + - name: "X-Invoke-User" + value: "apigateway" + in: "header" + origin: "CONSTANT" + description: "invoke user" + httpEndpoints: + address: "example.com" + scheme: "http" + method: "GET" + path: "/users" + timeout: 30000 +securityDefinitions: + apig-auth-app: + in: header + name: Authorization + type: apiKey + x-apigateway-auth-type: AppSigv1 + apig-auth-iam: + in: header + name: unused + type: apiKey + x-apigateway-auth-type: IAM+OpenAPI example:
+openapi: 3.0.0 +info: + title: importHttpEndpoint10 + version: '1.0' +servers: + - url: >- + http://abc.com + - url: >- + https://abc.com +paths: + '/http/{userId}': + get: + description: get user by userId + operationId: getUser3 + parameters: + - description: authorization token + example: '' + in: header + name: test + required: true + schema: + maxLength: 0 + maximum: 0 + minimum: 0 + type: string + x-apigateway-pass-through: always + - description: user id + example: '' + in: path + name: userId + required: true + schema: + maxLength: 0 + maximum: 0 + minimum: 0 + type: string + x-apigateway-pass-through: always + responses: + default-cors: + description: response example + x-apigateway-result-failure-sample: '' + x-apigateway-result-normal-sample: '' + security: + - apig-auth-iam: [] + servers: + - url: >- + https://abc.com + x-apigateway-backend: + httpEndpoints: + address: example.com + description: '' + enableClientSsl: false + method: GET + path: /users + retryCount: '-1' + scheme: http + timeout: 30000 + parameters: + - description: invoke user + in: HEADER + name: X-Invoke-User + origin: CONSTANT + value: apigateway + - description: user id + in: QUERY + name: userId + origin: REQUEST + value: userId + type: HTTP + x-apigateway-cors: true + x-apigateway-is-send-fg-body-base64: true + x-apigateway-match-mode: NORMAL + x-apigateway-request-type: public + x-apigateway-response: default +components: + responses: + default-cors: + description: response example + headers: + Access-Control-Allow-Origin: + schema: + default: '*' + type: string + securitySchemes: + apig-auth-app: + in: header + name: Authorization + type: apiKey + x-apigateway-auth-type: AppSigv1 + apig-auth-app-header: + in: header + name: Authorization + type: apiKey + x-apigateway-auth-opt: + appcode-auth-type: header + x-apigateway-auth-type: AppSigv1 + apig-auth-iam: + in: header + name: unused + type: apiKey + x-apigateway-auth-type: IAM + x-apigateway-responses: + default: {}++Importing an HTTP VPC Backend Service API
Import the request parameter definition of an HTTP VPC backend service API that uses the ANY method and is accessed through app authentication.
+Swagger example:
+swagger: "2.0" +info: + title: "importHttpVpcEndpoint" + description: "import apis" + version: "1.0" +host: "api.account.com" +paths: + '/http-vpc': + x-apigateway-any-method: + operationId: "userOperation" + description: "user operation resource" + security: + - apig-auth-app: [] + schemes: + - https + parameters: + - name: "Authorization" + description: "authorization signature" + type: "string" + in: "header" + required: true + responses: + "default": + description: "endpoint response" + x-apigateway-request-type: "public" + x-apigateway-cors: true + x-apigateway-is-send-fg-body-base64: true + x-apigateway-match-mode: "SWA" + x-apigateway-backend: + type: "HTTP-VPC" + parameters: + - name: "X-Invoke-User" + value: "apigateway" + in: "header" + origin: "CONSTANT" + description: "invoke user" + httpVpcEndpoints: + name: "userVpc" + scheme: "http" + method: "GET" + path: "/users" + timeout: 30000 +securityDefinitions: + apig-auth-app: + in: header + name: Authorization + type: apiKey + x-apigateway-auth-type: AppSigv1 + apig-auth-iam: + in: header + name: unused + type: apiKey + x-apigateway-auth-type: IAM+OpenAPI example:
+openapi: 3.0.0 +info: + description: import apis + title: importHttpVpcEndpoint + version: '1.0' +servers: + - url: >- + http://abc.com + - url: >- + https://abc.com +paths: + /http-vpc: + x-apigateway-any-method: + description: user operation resource + operationId: userOperation + parameters: + - description: authorization signature + example: '' + in: header + name: Authorization + required: true + schema: + maxLength: 0 + maximum: 0 + minimum: 0 + type: string + x-apigateway-pass-through: always + responses: + default-cors: + description: response example + x-apigateway-result-failure-sample: '' + x-apigateway-result-normal-sample: '' + security: + - apig-auth-app: [] + servers: + - url: >- + https://abc.com + x-apigateway-backend: + httpVpcEndpoints: + cascade_flag: false + description: '' + enableClientSsl: false + method: GET + name: userVpc + path: /users + retryCount: '-1' + scheme: http + timeout: 30000 + parameters: + - description: invoke user + in: HEADER + name: X-Invoke-User + origin: CONSTANT + value: apigateway + type: HTTP-VPC + x-apigateway-cors: true + x-apigateway-is-send-fg-body-base64: true + x-apigateway-match-mode: SWA + x-apigateway-request-type: public +components: + responses: + default-cors: + description: response example + headers: + Access-Control-Allow-Origin: + schema: + default: '*' + type: string + securitySchemes: + apig-auth-app: + in: header + name: Authorization + type: apiKey + x-apigateway-auth-type: AppSigv1 + apig-auth-app-header: + in: header + name: Authorization + type: apiKey + x-apigateway-auth-opt: + appcode-auth-type: header + x-apigateway-auth-type: AppSigv1 + apig-auth-iam: + in: header + name: unused + type: apiKey + x-apigateway-auth-type: IAM + x-apigateway-responses: {}++Importing a Function Backend Service API
Import the request parameter definition of a FunctionGraph backend service API that uses the GET method and is accessed through IAM authentication.
+Swagger example:
+swagger: "2.0" +info: + title: "importFunctionEndpoint" + description: "import apis" + version: "1.0" +host: "api.account.com" +paths: + '/function/{name}': + get: + operationId: "invokeFunction" + description: "invoke function by name" + security: + - apig-auth-iam: [] + schemes: + - https + parameters: + - name: "test" + description: "authorization token" + type: "string" + in: "header" + required: true + - name: "name" + description: "function name" + type: "string" + in: "path" + required: true + responses: + "200": + description: "function result" + x-apigateway-request-type: "public" + x-apigateway-cors: true + x-apigateway-is-send-fg-body-base64: true + x-apigateway-match-mode: "NORMAL" + x-apigateway-backend: + type: "FUNCTION" + parameters: + - name: "functionName" + value: "name" + in: "query" + origin: "REQUEST" + description: "function name" + - name: "X-Invoke-User" + value: "apigateway" + in: "header" + origin: "CONSTANT" + description: "invoke user" + functionEndpoints: + function-urn: "your function urn address" + version: "your function version" + invocation-type: "async" + timeout: 30000 +securityDefinitions: + apig-auth-app: + in: header + name: Authorization + type: apiKey + x-apigateway-auth-type: AppSigv1 + apig-auth-iam: + in: header + name: unused + type: apiKey + x-apigateway-auth-type: IAM+OpenAPI example:
+openapi: 3.0.0 +info: + description: import apis + title: importHttpEndpoint + version: '1.0' +servers: + - url: >- + http://api.account.com + - url: >- + https://api.account.com +paths: + /function/{name}: + get: + description: invoke function by name + operationId: invokeFunction + parameters: + - description: function name + in: path + name: name + required: true + schema: + maxLength: 0 + maximum: 0 + minimum: 0 + type: string + x-apigateway-pass-through: always + example: '' + - description: authorization token + in: header + name: test + required: true + schema: + maxLength: 0 + maximum: 0 + minimum: 0 + type: string + x-apigateway-pass-through: always + example: '' + responses: + default-cors: + description: response example + x-apigateway-result-failure-sample: '' + x-apigateway-result-normal-sample: '' + security: + - apig-auth-iam: [] + servers: + - url: >- + https://api.account.com + x-apigateway-backend: + functionEndpoints: + alias-urn: '' + description: '' + function-urn: "your function urn address" + invocation-type: async + network-type: V1 + timeout: 30000 + version: "your function version" + parameters: + - description: invoke user + in: HEADER + name: X-Invoke-User + origin: CONSTANT + value: apigateway + - description: function name + in: QUERY + name: functionName + origin: REQUEST + value: name + type: FUNCTION + x-apigateway-cors: true + x-apigateway-is-send-fg-body-base64: true + x-apigateway-match-mode: NORMAL + x-apigateway-request-type: public + x-apigateway-response: default +components: + responses: + default-cors: + description: response example + headers: + Access-Control-Allow-Origin: + schema: + default: '*' + type: string + securitySchemes: + apig-auth-app: + in: header + name: Authorization + type: apiKey + x-apigateway-auth-type: AppSigv1 + apig-auth-iam: + in: header + name: unused + type: apiKey + x-apigateway-auth-type: IAM + x-apigateway-responses: + default: {}++Importing a Mock Backend Service API
Import the definition of a Mock backend service API that uses the GET method and is accessed without authentication.
+Swagger example:
+swagger: "2.0" +info: + title: "importMockEndpoint" + description: "import apis" + version: "1.0" +host: "api.account.com" +paths: + '/mock': + get: + operationId: "mock" + description: "mock test" + schemes: + - http + responses: + "200": + description: "mock result" + x-apigateway-request-type: "private" + x-apigateway-cors: true + x-apigateway-is-send-fg-body-base64: true + x-apigateway-match-mode: "NORMAL" + x-apigateway-backend: + type: "MOCK" + mockEndpoints: + result-content: "{\"message\": \"mocked\"}" +securityDefinitions: + apig-auth-app: + in: header + name: Authorization + type: apiKey + x-apigateway-auth-type: AppSigv1 + apig-auth-iam: + in: header + name: unused + type: apiKey + x-apigateway-auth-type: IAM+OpenAPI example:
+openapi: 3.0.0 +info: + description: import apis + title: importHttpVpcEndpoint + version: '1.0' +servers: + - url: >- + http://abc.com + - url: >- + https://abc.com +paths: + /mock: + get: + description: mock test + operationId: mock + responses: + default-cors: + description: response example + x-apigateway-result-failure-sample: '' + x-apigateway-result-normal-sample: '' + servers: + - url: >- + http://abc.com + x-apigateway-backend: + mockEndpoints: + description: '' + result-content: '{"message": "mocked"}' + type: MOCK + x-apigateway-cors: true + x-apigateway-is-send-fg-body-base64: true + x-apigateway-match-mode: NORMAL + x-apigateway-request-type: private + x-apigateway-response: default +components: + responses: + default-cors: + description: response example + headers: + Access-Control-Allow-Origin: + schema: + default: '*' + type: string + securitySchemes: + apig-auth-app: + in: header + name: Authorization + type: apiKey + x-apigateway-auth-type: AppSigv1 + apig-auth-app-header: + in: header + name: Authorization + type: apiKey + x-apigateway-auth-opt: + appcode-auth-type: header + x-apigateway-auth-type: AppSigv1 + apig-auth-iam: + in: header + name: unused + type: apiKey + x-apigateway-auth-type: IAM + x-apigateway-responses: + default: {}++Follow-Up Operations
Publish the imported APIs in an environment so that they can be called by users.
+++ diff --git a/docs/apig/umn/apig_03_0069.html b/docs/apig/umn/apig_03_0069.html new file mode 100644 index 00000000..52ea5e8b --- /dev/null +++ b/docs/apig/umn/apig_03_0069.html @@ -0,0 +1,18 @@ + + +++Parent topic: Importing and Exorting APIs+HTTP 2.0
++APIG supports HTTP/2, which is a major revision of HTTP and was originally named HTTP 2.0. It provides binary encoding, request multiplexing over a single connection, and request header compression, improving transmission performance and throughput with a lower latency.
++![]()
+
- HTTP 2.0 strongly depends on network stability. To use HTTP 2.0, ensure that your network is stable and your client supports this protocol.
- If your gateway does not support HTTP 2.0, contact technical support to upgrade it.
- To disable HTTP 2.0, turn off HTTP/2 under the request_custom_config parameter on the Parameters tab page of the APIG console.
+
- Binary encoding
Unlike HTTP 1.x where data is transmitted in text format, data in HTTP 2.0 is split into messages and frames for binary encoding. Compared with string (text) parsing, binary parsing is easier and less error-prone and delivers higher transmission performance.
+- Multiplexing
With binary encoding, HTTP 2.0 no longer relies on multiple connections to process and send requests and responses concurrently.
+For the same domain name, all requests are completed on a single connection, and each connection can process any number of messages. A message consists of one or more frames, which can be sent out of order and finally recombined based on the stream ID in the header of each frame. This shortens the latency and improves the efficiency.
+- Header compression
HTTP 2.0 uses an encoder to reduce the size of the headers to transmit. Both the client and server store a header field table to avoid transmitting same headers repeatedly, achieving high throughput.
+++ diff --git a/docs/apig/umn/apig_03_0070.html b/docs/apig/umn/apig_03_0070.html new file mode 100644 index 00000000..e7d9aec6 --- /dev/null +++ b/docs/apig/umn/apig_03_0070.html @@ -0,0 +1,20 @@ + + +++Parent topic: API Management+Taking an API Offline
++You can remove APIs that you do not need from the environments where the APIs have been published.
++![]()
This operation will cause the APIs to be inaccessible in the environments. Ensure that you have notified users before this operation.
++Prerequisites
+
- You have created an API group and API.
- You have published the API.
+Procedure
+
- Go to the APIG console.
- Select a dedicated gateway at the top of the navigation pane.
- In the navigation pane, choose API Management > API Groups.
- Click the name of the target API group.
+
- To take one API offline, select the API, and click Take Offline in the upper right.
- To take multiple APIs (≤ 1000) offline, click Batch, select the APIs, and click the Take Offline icon.
- Select the environment from which you want to take the API offline, and click Yes.
+Follow-Up Operations
After taking an API offline, delete it to release resources.
+++ diff --git a/docs/apig/umn/apig_03_0071.html b/docs/apig/umn/apig_03_0071.html new file mode 100644 index 00000000..961abfe3 --- /dev/null +++ b/docs/apig/umn/apig_03_0071.html @@ -0,0 +1,102 @@ + + +++Parent topic: API Management+Importing a CCE Workload
++By importing Cloud Container Engine (CCE) workloads, you can open your CCE service capabilities through APIs.
++![]()
If your gateway does not support CCE workload import, contact customer service.
++Precautions
+
- Only CCE Turbo clusters and CCE clusters using the VPC network model are supported.
- The CCE cluster and your gateway must be in the same VPC or otherwise connected.
- If you select a CCE cluster that uses a VPC network model, add the container CIDR block of the cluster to Routes on the gateway details page.
- After the import, APIs will be generated, together with a microservice load balance channel that monitors and updates address changes of all pods in the workload.
+Prerequisites
You have created CCE workloads
++Procedure
- Go to the APIG console.
- Select a gateway at the top of the navigation pane.
+
- In the navigation pane, choose API Management > API Groups.
- Choose Create API Group > Import CCE Workload. Set the parameters according to the following table.
+
++
Table 1 Parameter description + + + Parameter
++ Description
++ + Group
++ Group to which the CCE workload belongs. You can create a group or select an existing group.
++ + Cluster
++ Select a cluster. Click View CCE Console to view the available clusters.
++ + Namespace
++ Namespace to which the workload will belong. A namespace is an abstract collection of resources and objects.
++ + Workload Type
++ +
- Deployment: Deployments do not store any data or status while they are running.
- StatefulSet: StatefulSets store data and statuses while they are running.
- DaemonSet: DaemonSets ensure that only one pod runs on all or some nodes. When a node is added to a cluster, a new pod is also added for the node. When a node is removed from a cluster, the pod is also reclaimed. If a DaemonSet is deleted, all pods created by it will be deleted.
For details about workload types, see Overview.
++ + Service Label Key
++ Pod label of a workload. The service label name is the pod label key and the service label value is the pod label value.
+For details about pod labels, see Labels and Annotations.
++ + Service Label Value
++ + Tag
++ Pod label of a workload. If a workload cannot be identified by certain service label name and value, select another pod label to specify the workload.
++ + Protocol
++ HTTP and HTTPS are supported. HTTPS is recommended for transmitting important or sensitive data.
++ + Request Path
++ You can use a plus sign (+) for prefix matching. For example, /a/{b+}.
++ + Port
++ Listening port of the CCE workload.
++ + Authentication Mode
++ App and IAM authentication is supported. You can also choose not to authenticate requests.
++
- App: Requests will be authenticated by APIG. This authentication mode is recommended.
- IAM: Requests will be authenticated by IAM.
- None: No authentication will be required.
+ + CORS
++ Determine whether to enable cross-origin resource sharing (CORS).
+CORS allows browsers to send XMLHttpRequest to servers in other domains, overcoming the limitation that Asynchronous JavaScript and XML (AJAX) can be used only within the same domain.
+There are two types of CORS requests:
++
- Simple requests: requests that have the Origin field in the header.
- Not-so-simple requests: HTTP requests sent before the actual request.
If CORS (not-so-simple request) is enabled for an API, another API that uses the OPTIONS method must be created. For details, see Enabling CORS.
++ + + Timeout (ms)
++ Backend request timeout.
+If a backend timeout error occurs during API debugging, increase the timeout to locate the reason.
+NOTE:+Modify the maximum timeout by referring to Configuring Parameters. The value range is 1 ms to 600,000 ms.
+- Click OK.
++ diff --git a/docs/apig/umn/apig_03_0072.html b/docs/apig/umn/apig_03_0072.html new file mode 100644 index 00000000..ab6fb94f --- /dev/null +++ b/docs/apig/umn/apig_03_0072.html @@ -0,0 +1,23 @@ + + + + + +++Parent topic: API Management+API Monitoring
++++ + ++ diff --git a/docs/apig/umn/apig_03_0075.html b/docs/apig/umn/apig_03_0075.html new file mode 100644 index 00000000..e27c0635 --- /dev/null +++ b/docs/apig/umn/apig_03_0075.html @@ -0,0 +1,19 @@ + + +++Parent topic: Monitoring & Analysis+Managing Tags
++Tags classify your gateways to facilitate search, analysis, and management.
+You can search, analyze, and manage your resources on the Tag Management Service (TMS) console.
++Procedure
+
- Go to the APIG console.
- In the navigation pane, choose Gateways.
- Click Access Console or the name of the target gateway.
- On the Tags tab, click Add Tag.
A tag consists of a key and value. The value can be empty.
+- Click OK.
+Related Operations
Use the tags to filter, view, analyze, and manage your gateway resources on the TMS console.
++
- Hover over
on the left to expand the service list, and enter TMS.
- On the TMS console, enter the required information to filter gateway resources.
+
- Region: Select the region where the gateway is.
- Resource Type: Select APIG.
- Resource Tag: Select a tag key.
++ diff --git a/docs/apig/umn/apig_03_0076.html b/docs/apig/umn/apig_03_0076.html new file mode 100644 index 00000000..7bcd7d7a --- /dev/null +++ b/docs/apig/umn/apig_03_0076.html @@ -0,0 +1,18 @@ + + +++Parent topic: Gateway Management+Cloning an API
++To improve API creation efficiency, you can clone an API with a custom name and path.
+Policies bound to an API cannot be cloned and can only be manually bound to the new API.
++Prerequisites
You have created an API. If no API is available, create one by referring to Creating an API.
++Procedure
- Go to the APIG console.
- Select a dedicated gateway at the top of the navigation pane.
+
- In the navigation pane, choose API Management > API Groups.
- Click a group name.
- On the APIs tab, choose More > Clone.
- Set the API name and path, and click OK.
+Follow-Up Operations
After cloning an API, verify it by following the procedure in Debugging an API.
+++ diff --git a/docs/apig/umn/apig_03_0077.html b/docs/apig/umn/apig_03_0077.html new file mode 100644 index 00000000..d4aa3f13 --- /dev/null +++ b/docs/apig/umn/apig_03_0077.html @@ -0,0 +1,163 @@ + + +++Parent topic: API Management+Third-Party Authorizer
++You can configure your own service to authenticate API requests. APIG first invokes this service for authentication, and then invokes the backend service after receiving a success response.
++![]()
If your gateway does not support this policy, contact technical support to upgrade the gateway to the latest version.
+The following figure shows the principle of third-party authentication. After binding a third-party authentication policy to an API, call the API by referring to Calling APIs.
++
+Prerequisites
You have understood the guidelines for policy creation and API binding.
++Configuration Parameters
+++
Table 1 Configuration parameters + + + Parameter
++ Description
++ + Load Balance Channel
++ Whether to connect a third-party authentication service using a load balance channel.
++
- Configure: Select a load balance channel.
- Skip: Enter the path of the authentication service.
+ + Backend URL
++ +
- Method
GET, POST, PUT, and HEAD are supported.
+- Protocol
HTTP or HTTPS. HTTPS is recommended for transmitting important or sensitive data.
+- Load Balance Channel (if applicable)
Set this parameter only if a load balance channel is used. Select a load balance channel. If no required channel is available, click Create Load Balance Channel to create one.
+- Backend Address (if applicable)
Set this parameter if no load balance channel is used.
+Enter the access address of the authentication service in the format of Host:Port. Host indicates the IP address or domain name for accessing the authentication service. If no port is specified, ports 80 and 443 are used by default for HTTP and HTTPS, respectively.
+NOTE:+Only IPv4 addresses are supported.
+- Path
Path (URL) of the authentication service.
++ + Timeout (ms)
++ Timeout of the authentication service. It cannot exceed the max. timeout of the backend service. View the timeout limit on the Parameters tab of the gateway details page.
++ + Host Header
++ Set this parameter only if a load balance channel is used.
+Define a host header for requests to be sent to cloud servers associated with the load balance channel. By default, the original host header in each request is used.
++ + Brute Force Threshold
++ IP addresses whose number of third-party authentication failure attempts within 5 minutes exceeds this threshold will be blocked. They will be unblocked after 5 minutes.
+For example, if an IP address has failed third-party authentication more than the configured threshold in the third minute, the address is blocked, and will be unblocked after 2 minutes.
++ + Identity Sources
++ Parameters to obtain from the original API requests for third-party authentication. Max. 10 headers and 10 query strings. If not specified, all headers and query strings in the original requests will be used.
++ + Relaxed Mode
++ When this option is enabled, APIG accepts client requests even when your authentication service cannot connect or returns an error code starting with "5".
++ + Allow Original Request Body
++ When this option is enabled, the original request body is included for authentication.
++ + Request Body Size (bytes)
++ Available only when Allow Original Request Body is enabled.
+The value cannot exceed the max. request body size of the gateway. View the request body size limit on the Parameters tab of the gateway details page.
++ + Allow Original Request Path
++ When this option is enabled, the original request path is added to the end of the authentication request path.
++ + Return Response
++ When this option is enabled, the authentication response is returned on failure.
++ + Allowed Response Headers
++ Headers to obtain from the authentication response and send to the backend service, when the authentication is successful.
+Max. 10 headers.
++ + Simple Authentication
++ When this option is enabled, status codes starting with "2" indicate successful authentication.
++ + Authentication Result
++ Available only when Simple Authentication is disabled.
+Responses whose headers contain these parameters with the same values indicate successful authentication.
++ + Blacklist/Whitelist
++ When this option is enabled, whether API requests require third-party authentication depends on the configured blacklist or whitelist rules.
++ + Type
++ ++ + Parameters
++ Define parameters for rule matching.
++
- Parameter Location: the location of a parameter used for rule matching.
+
- path: API request URI. This parameter is configured by default.
- method: API request method. This parameter is configured by default.
- header: the key of a request header.
- query: the key of a query string.
- system: a system parameter.
- Parameter: the name of a parameter to match the specified value in a rule.
+ + + Rules
++ Define conditions for rule matching.
+Click Add Rule and edit the rule name and conditions. In the Condition Expressions dialog box, select a parameter and operator, and enter a value.
++
- =: equal to
- !=: not equal to
- pattern: regular expression
- enum: enumerated values. Separate them with commas (,).
+Example Script
{ + "auth_request": { + "method": "GET", + "protocol": "HTTPS", + "url_domain": "192.168.10.10", + "timeout": 5000, + "path": "/", + "vpc_channel_enabled": false, + "vpc_channel_info": null + }, + "custom_forbid_limit": 100, + "carry_body": { + "enabled": true, + "max_body_size": 1000 + }, + "auth_downgrade_enabled": true, + "carry_path_enabled": true, + "return_resp_body_enabled": false, + "carry_resp_headers": [], + "simple_auth_mode_enabled": true, + "match_auth": null, + "rule_enabled": false, + "rule_type": "allow" +}+++ diff --git a/docs/apig/umn/apig_03_0078.html b/docs/apig/umn/apig_03_0078.html new file mode 100644 index 00000000..7e7c2209 --- /dev/null +++ b/docs/apig/umn/apig_03_0078.html @@ -0,0 +1,73 @@ + + +++Parent topic: API Policies+Creating a gRPC API
++APIG supports gRPC API creation. gRPC is a modern, open-source, high-performance Remote Procedure Call (RPC) framework that can run in any environment. You only need to define the request and response of each API, and let the gRPC framework take care of the rest. gRPC uses protocol buffers (protobuf) as its Interface Definition Language (IDL) and for bottom-layer message exchange. The following table compares gRPC and REST APIs.
+ +++
Table 1 gRPC vs REST + + + Parameter
++ gRPC
++ REST
++ + Message encoding
++ protobuf
++ JSON
++ + Transmission protocol
++ HTTP/2
++ HTTP
++ + Transmission performance
++ Fast, with less content to transmit
++ More content to transmit
++ + + Transmission mode
++ ++ Send a single request and receive a single response.
+If both your client and server are of the gRPC type, you can create an gRPC API to open up your backend capabilities. gRPC features low resource consumption and high transmission rate. It is suitable for internal service invocation and governance.
++Restrictions
+
- gRPC APIs cannot be imported, exported, or debugged, and do not support the import of API design files, CSE microservices, or CCE workloads.
- Circuit breaker policies whose backend policy type is Mock, HTTP&HTTPS, or FunctionGraph are not supported.
+Prerequisites
+
- You have created an API group. If no API group is available, create one by referring to Creating an API Group.
- If the backend service needs to use a load balance channel, create a channel first.
- The backend service has a proto file that defines API request and response parameters. The proto file is used in gRPC to define data structures and service APIs. It describes data structures and interactions using protobuf and serves as a contract for communication between the client and backend services.
+Procedure
- Go to the APIG console.
- Select a gateway at the top of the navigation pane.
+
- In the navigation pane, choose API Management > API Groups.
- Click a group name.
- On the APIs tab page, choose Create API > Create gRPC API.
- Configure the frontend definition according to 5.a.
For gRPC APIs, the default frontend request method is POST and the protocol is GRPCS.
+Set the path to any of the following:++
- /
- /{Package name}.{Service name}
- /{Package name}.{Service name}/{Method name}
+![]()
+
- Obtain the package name, service name, and method name from the proto file.
- Absolute match can be used only when the frontend path is set to /{Package name}.{Service name}/{Method name}.
- Base64 encoding is not supported.
- Configure the authentication mode by referring to 5.b.
- Click Next.
- Configure the default backend by referring to 1.
The backend service type of gRPC APIs can be GRPC&GRPCS or FunctionGraph.++
- When the type is GRPC&GRPCS, the backend service uses the POST request method, / path, and GRPC or GRPCS protocol, and does not support parameter orchestration.
- When the type is FunctionGraph, the backend service uses V2 network architecture and Synchronous invocation type by default, and does not support parameter orchestration.
- (Optional) Add a backend policy by referring to 5.
+(Optional) Creating a Policy
You can create policies for the API after publishing it.
++
- On the APIs tab, click Create Policy.
- Select a policy type and set parameters.
+
- Select existing policy
- Create new policy (see Creating a Policy and Binding It to APIs)
- Click OK.
++ diff --git a/docs/apig/umn/apig_03_0079.html b/docs/apig/umn/apig_03_0079.html new file mode 100644 index 00000000..9f35cc6b --- /dev/null +++ b/docs/apig/umn/apig_03_0079.html @@ -0,0 +1,31 @@ + + + +++Parent topic: API Management+FAQs
+ +++ +++ diff --git a/docs/apig/umn/apig_03_0081.html b/docs/apig/umn/apig_03_0081.html new file mode 100644 index 00000000..3fa044ea --- /dev/null +++ b/docs/apig/umn/apig_03_0081.html @@ -0,0 +1,38 @@ + + ++
+- Common FAQs
+
+- API Creation
+
+- API Calling
+
+- API Authentication
+
+- API Control Policies
+
+- API Publishing
+
+- API Import and Export
+
+- API Security
+
+- Other FAQs
+
+Change History
+++ diff --git a/docs/apig/umn/apig_03_0082.html b/docs/apig/umn/apig_03_0082.html new file mode 100644 index 00000000..64114d32 --- /dev/null +++ b/docs/apig/umn/apig_03_0082.html @@ -0,0 +1,22 @@ + + +++
Table 1 Change history + + + Released On
++ Change History
++ + 2024-10-18
++ This issue incorporates the following changes:
+Updated the pictures in Third-Party Authorizer and SSL Certificates.
++ + 2024-08-14
++ This issue incorporates the following changes:
++
- Modified the path for creating an API in Creating an API.
- Added the error code reference in Debugging an API.
- Added the description "Note that only APIs that use app authentication can be bound." in Creating a Credential and Getting Authorized.
- Added the link to "Calling APIs" in Calling an API.
- Added the error code reference in Calling an API.
- Added links to "Workloads", "Workload Overview", and "Labels and Annotations" in Importing a CCE Workload.
- Updated Binding a Domain Name.
- Added links to "Managing Versions" and "Managing Aliases" in Creating an API.
- Modified the description of server streaming RPC in Creating a gRPC API.
+ + 2024-07-05
++ This issue incorporates the following changes:
++
- Added Importing a CCE Workload.
- Added Creating a gRPC API.
- Added Cloning an API.
- Added Request Throttling 2.0.
- Added Kafka Log Push.
- Added Circuit Breaker.
- Added Third-Party Authorizer.
- Added Binding a Credential Quota Policy.
- Added Binding an Access Control Policy.
- Added Managing Tags.
- Added the description of HTTP-to-HTTPS auto redirection in Binding a Domain Name.
- Added the description of two-factor authentication in Creating an API.
- Added the description of OpenAPI 3.0 in Importing and Exorting APIs.
- Added the description of microservice load balance channels in Load Balance Channels.
- Added the description of API policy cloning in Creating a Policy and Binding It to APIs.
- Added Modifying Specifications.
+ + + 2022-12-30
++ This issue is the first official release.
+Importing and Exorting APIs
++++ + ++ diff --git a/docs/apig/umn/apig_03_0083.html b/docs/apig/umn/apig_03_0083.html new file mode 100644 index 00000000..39210f8d --- /dev/null +++ b/docs/apig/umn/apig_03_0083.html @@ -0,0 +1,257 @@ + + +++Parent topic: API Management+Restrictions and Compatibility
++Note the following restrictions and compatibility issues when importing or exporting APIs on APIG:
++Restrictions
+
- APIG parameter restrictions:
+
- APIG does not support the configuration of request parameters in the formData and body locations.
- APIG does not support the configuration of parameters consumes and produces.
- The names of header parameters are not case-sensitive.
- Backend policy restrictions are as follows:
+
- Default backend type HTTP: The HTTP and HTTP-VPC backends are supported.
- Default backend type HTTP-VPC: The HTTP and HTTP-VPC backends are supported.
- Default backend type function: Only the function backend is supported.
- Default backend type mock: Only the mock backend is supported.
+Compatibility
+ +
- OpenAPI is supported.
The OpenAPI Specification (OAS) defines a standard, language-agnostic interface to RESTful APIs. OAS is formerly known as Swagger. APIG supports two OpenAPI specifications: Swagger 2.0 and OpenAPI 3.0. For easy understanding, in the following sections, OAS refers to OpenAPI Specification (including Swagger 2.0 and OpenAPI 3.0), Swagger refers to Swagger 2.0, and OpenAPI refers to OpenAPI 3.0.
+- Mappings between imported or exported OAS objects and APIG's objects
- Differences in request parameter types
- Differences in API request path template syntax
- Extended fields supported for APIG when importing APIs
+ ++
Table 1 Mappings between OAS objects and APIG's objects + + + Swagger Object
++ OpenAPI Object
+(3.0.0)
++ APIG Object
++ Import
++ Export
++ + ++ ++ API group name
++ Importing to a new API group: a new API group name
+Importing to an existing API group: not used
+An API group name consists of 3–64 characters, starting with a letter. Only letters, digits, and underscores (_) are allowed.
++ API group name
++ + ++ ++ API group description
++ Importing to a new API group: description about the new group
+Importing to an existing API group: not used
++ API group description
++ + ++ ++ Version
++ Not used
++ User-defined version
+The current time is used as the API group name if no name is specified.
++ + ++ ++ API group domain name
++ Not used
++ The first user-defined domain name of an API group is preferentially used.
+The independent domain name of the API group is used if the API group is not bound with any user-defined domain names.
++ + ++ -
++ -
++ Merged with the request path of each API
++ Not used
++ + ++ ++ API request path
++ Merged with basePath to use as an API request path
++ API request path
++ + ++ ++ API name
++ API name
++ API name
++ + ++ ++ API description
++ API description
++ API description
++ + ++ ++ API frontend request parameters
++ API request parameters
++ API request parameters
++ + ++ -
++ API frontend request protocol
++ API request protocol
++ API request protocol
++ + ++ ++ -
++ Not used
++ Default response
++ + + ++ ++ API authentication mode
++ API authentication mode
+Used together with x-apigateway-auth-type
++ API authentication mode
+Used together with x-apigateway-auth-type
++ ++
Table 2 Differences in request parameter types + + + OAS
++ APIG
++ Supported Attribute
++ + integer
+long
+float
+double
++ number
++ maximum
+minimum
+default
+enum
+required
+description
++ + string
++ string
++ maxLength
+minLength
+default
+enum
+required
+description
++ + + Other
++ None
++ None
+++
Table 3 Differences in API request path template syntax + + + Syntax
++ OAS
++ APIG
++ + /users/{userName}
++ Supported
++ Supported
++ + /users/prefix-{userName}
+/users/{userName}-suffix
+/users/prefix-{userName} -suffix
++ Supported
++ Not supported for frontend request definition
+Supported for backend request definition
++ + + /users/{proxy+}
++ Not supported
++ Supported for frontend request definition
+Not supported for backend request definition
+++ diff --git a/docs/apig/umn/apig_03_0084.html b/docs/apig/umn/apig_03_0084.html new file mode 100644 index 00000000..989f9aff --- /dev/null +++ b/docs/apig/umn/apig_03_0084.html @@ -0,0 +1,57 @@ + + +++Parent topic: Importing and Exorting APIs+Extended Definition
+ +++ diff --git a/docs/apig/umn/apig_03_0085.html b/docs/apig/umn/apig_03_0085.html new file mode 100644 index 00000000..b0bdb7de --- /dev/null +++ b/docs/apig/umn/apig_03_0085.html @@ -0,0 +1,95 @@ + + ++
+ +- x-apigateway-auth-type
+
+- x-apigateway-request-type
+
+- x-apigateway-match-mode
+
+- x-apigateway-cors
+
+- x-apigateway-is-send-fg-body-base64
+
+- x-apigateway-any-method
+
+- x-apigateway-backend
+
+- x-apigateway-backend.parameters
+
+- x-apigateway-backend.httpEndpoints
+
+- x-apigateway-backend.httpVpcEndpoints
+
+- x-apigateway-backend.functionEndpoints
+
+- x-apigateway-backend.mockEndpoints
+
+- x-apigateway-backend-policies
+
+- x-apigateway-backend-policies.conditions
+
+- x-apigateway-ratelimit
+
+- x-apigateway-ratelimits
+
+- x-apigateway-ratelimits.policy
+
+- x-apigateway-ratelimits.policy.special
+
+- x-apigateway-access-control
+
+- x-apigateway-access-controls
+
+- x-apigateway-access-controls.policy
+
+- x-apigateway-plugins
+
+++Parent topic: Importing and Exorting APIs+x-apigateway-auth-type
++Meaning: Swagger-based apiKey authentication format, which defines an authentication mode provided by APIG.
+Scope of effect: Security Scheme Object (2.0)/Security Scheme Object (3.0)
+Swagger:
+securityDefinitions: + apig-auth-app: + in: header + name: Authorization + type: apiKey + x-apigateway-auth-type: AppSigv1 + apig-auth-iam: + in: header + name: unused + type: apiKey + x-apigateway-auth-type: IAM+OpenAPI example:
+securitySchemes: + apig-auth-app: + in: header + name: Authorization + type: apiKey + x-apigateway-auth-type: AppSigv1 + apig-auth-iam: + in: header + name: unused + type: apiKey + x-apigateway-auth-type: IAM+ +++
Table 1 Parameter description + + + Parameter
++ Mandatory
++ Type
++ Description
++ + x-apigateway-auth-type
++ Yes
++ String
++ Authentication mode used on APIG. AppSigv1 and IAM are supported.
++ + type
++ Yes
++ String
++ Authentication type. Only apiKey is supported.
++ + name
++ Yes
++ String
++ Name of the parameter for authentication.
++ + in
++ Yes
++ String
++ Only header is supported.
++ + + description
++ No
++ String
++ Description about the authentication.
+++ diff --git a/docs/apig/umn/apig_03_0086.html b/docs/apig/umn/apig_03_0086.html new file mode 100644 index 00000000..657c021f --- /dev/null +++ b/docs/apig/umn/apig_03_0086.html @@ -0,0 +1,42 @@ + + +++Parent topic: Extended Definition+x-apigateway-request-type
++Meaning: API request type, which can be public or private.
+Scope of effect: Operation Object (2.0)/Operation Object (3.0)
+Example:
+paths: + '/path': + get: + x-apigateway-request-type: 'public'+ ++ ++
Table 1 Parameter description + + + Parameter
++ Mandatory
++ Type
++ Description
++ + + x-apigateway-request-type
++ Yes
++ String
++ API visibility. The options include public and private.
++
- public: The API can be made available for sale.
- private: The API will not be available for sale.
++ diff --git a/docs/apig/umn/apig_03_0087.html b/docs/apig/umn/apig_03_0087.html new file mode 100644 index 00000000..4f27c3f1 --- /dev/null +++ b/docs/apig/umn/apig_03_0087.html @@ -0,0 +1,41 @@ + + +++Parent topic: Extended Definition+x-apigateway-match-mode
++Meaning: Request URL matching mode, which can be NORMAL or SWA.
+Scope of effect: Operation Object (2.0)/Operation Object (3.0)
+Example:
+paths: + '/path': + get: + x-apigateway-match-mode: 'SWA'+ +++
Table 1 Parameter description + + + Parameter
++ Mandatory
++ Type
++ Description
++ + + x-apigateway-match-mode
++ Yes
++ String
++ API matching mode. The options include SWA and NORMAL.
++
- SWA: prefix match. For example, both /prefix/foo and /prefix/bar match /prefix, but /prefixpart does not match.
- NORMAL: exact match.
++ diff --git a/docs/apig/umn/apig_03_0088.html b/docs/apig/umn/apig_03_0088.html new file mode 100644 index 00000000..4a91611d --- /dev/null +++ b/docs/apig/umn/apig_03_0088.html @@ -0,0 +1,83 @@ + + +++Parent topic: Extended Definition+x-apigateway-cors
++Meaning: Specifies whether CORS is supported. The value is of the Boolean type.
+Scope of effect: Operation Object (2.0)/Operation Object (3.0)
+Example:
+paths: + '/path': + get: + x-apigateway-cors: true+ +++
Table 1 Parameter description + + + Parameter
++ Mandatory
++ Type
++ Description
++ + + x-apigateway-cors
++ Yes
++ boolean
++ Whether to support CORS.
++
- true: support
- false: not support
For the API request for enabling CORS, the headers listed in the following table will be added to the response.
+ +++
+ + + Header
++ Value
++ Description
++ + Access-Control-Max-Age
++ 172800
++ Maximum time the response of a preflight request can be cached.
+Unit: s
++ + Access-Control-Allow-Origin
++ *
++ Requests from any domain are allowed.
++ + Access-Control-Allow-Headers
++ X-Sdk-Date, X-Sdk-Nonce, X-Proxy-Signed-Headers, X-Sdk-Content-Sha256, X-Forwarded-For, Authorization, Content-Type, Accept, Accept-Ranges, Cache-Control, and Range
++ Headers that can be used by a formal request.
++ + + Access-Control-Allow-Methods
++ GET, POST, PUT, DELETE, HEAD, OPTIONS, and PATCH
++ Methods that can be used by a formal request.
+++ diff --git a/docs/apig/umn/apig_03_0089.html b/docs/apig/umn/apig_03_0089.html new file mode 100644 index 00000000..426c4ea6 --- /dev/null +++ b/docs/apig/umn/apig_03_0089.html @@ -0,0 +1,50 @@ + + +++Parent topic: Extended Definition+x-apigateway-any-method
++Meaning: API request method used by default if no HTTP request method is specified.
+Scope of effect: Path Item Object (2.0)/Path Item Object (3.0)
+Example:
+paths: + '/path': + get: + produces: + - application/json + responses: + "200": + description: "get response" + x-apigateway-any-method: + produces: + - application/json + responses: + "200": + description: "any response"+ +++
Table 1 Parameter description + + + Parameter
++ Mandatory
++ Type
++ Description
++ + + x-apigateway-any-method
++ No
++ String
++ Request method.
+++ diff --git a/docs/apig/umn/apig_03_0090.html b/docs/apig/umn/apig_03_0090.html new file mode 100644 index 00000000..751cce93 --- /dev/null +++ b/docs/apig/umn/apig_03_0090.html @@ -0,0 +1,101 @@ + + +++Parent topic: Extended Definition+x-apigateway-backend
++Meaning: API backend definition.
+Scope of effect: Operation Object (2.0)/Operation Object (3.0)
+Example:
+paths: + '/users/{userId}': + get: + produces: + - "application/json" + responses: + default: + description: "default response" + x-apigateway-request-type: "public" + x-apigateway-backend: + type: "backend endpoint type"+ +++
Table 1 Parameter description + + + Parameter
++ Mandatory
++ Type
++ Description
++ + x-apigateway-backend
++ Yes
++ String
++ Backend service definition.
++ + type
++ Yes
++ String
++ Backend service type. The options include HTTP, HTTP-VPC, FUNCTION, and MOCK.
++ + parameters
++ No
++ ++ Backend parameters.
++ + httpEndpoints
++ No
++ ++ HTTP backend service definition.
++ + httpVpcEndpoints
++ No
++ ++ HTTP VPC backend service definition.
++ + functionEndpoints
++ No
++ ++ Function backend service definition.
++ + + mockEndpoints
++ No
++ ++ Mock backend service definition.
+++ diff --git a/docs/apig/umn/apig_03_0091.html b/docs/apig/umn/apig_03_0091.html new file mode 100644 index 00000000..25a360b1 --- /dev/null +++ b/docs/apig/umn/apig_03_0091.html @@ -0,0 +1,106 @@ + + +++Parent topic: Extended Definition+x-apigateway-backend.parameters
++Meaning: API backend service definition.
+Scope of effect: x-apigateway-backend
+Example:
+paths: + '/users/{userId}': + get: + produces: + - "application/json" + parameters: + - name: "X-Auth-Token" + description: "Authentication token" + type: "string" + in: "header" + required: true + - name: "userId" + description: "Username" + type: "string" + in: "path" + required: true + responses: + default: + description: "default response" + x-apigateway-request-type: "public" + x-apigateway-backend: + type: "HTTP" + parameters: + - name: "userId" + value: "userId" + in: "query" + origin: "REQUEST" + description: "Username" + - name: "X-Invoke-User" + value: "apigateway" + in: "header" + origin: "CONSTANT" + description: "Caller"+ +++
Table 1 Parameter description + + + Parameter
++ Mandatory
++ Type
++ Description
++ + name
++ Yes
++ String
++ Parameter name, which consists of a maximum of 32 bytes, starting with a letter. Only letters, digits, periods (.), hyphens (-), and underscores (_) are allowed.
+The names of header parameters are not case-sensitive.
++ + value
++ Yes
++ String
++ Parameter value, which is a parameter name if the parameter comes from a request.
++ + in
++ Yes
++ String
++ Parameter location, which can be header, query, or path.
++ + origin
++ Yes
++ String
++ Parameter mapping source. The options include REQUEST and CONSTANT.
++ + + description
++ No
++ String
++ Parameter meaning.
+++ diff --git a/docs/apig/umn/apig_03_0092.html b/docs/apig/umn/apig_03_0092.html new file mode 100644 index 00000000..171d607b --- /dev/null +++ b/docs/apig/umn/apig_03_0092.html @@ -0,0 +1,95 @@ + + +++Parent topic: Extended Definition+x-apigateway-backend.httpEndpoints
++Meaning: HTTP backend service definition.
+Scope of effect: x-apigateway-backend
+Example:
+paths: + '/users/{userId}': + get: + produces: + - "application/json" + parameters: + - name: "X-Auth-Token" + description: "Authentication token" + type: "string" + in: "header" + required: true + responses: + default: + description: "default response" + x-apigateway-request-type: "public" + x-apigateway-backend: + type: "HTTP" + httpEndpoints: + address: "example.com" + scheme: "http" + method: "GET" + path: "/users" + timeout: 30000+ +++
Table 1 Parameter description + + + Parameter
++ Mandatory
++ Type
++ Description
++ + address
++ Yes
++ Array
++ Backend service address. The format is <Domain name or IP address>:[Port number]
++ + scheme
++ Yes
++ String
++ Backend request protocol. HTTP and HTTPS are supported.
++ + method
++ Yes
++ String
++ Backend request method. The options include GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH, and ANY.
++ + path
++ Yes
++ String
++ Backend request path, which can contain variables.
++ + + timeout
++ No
++ Number
++ Backend request timeout in milliseconds. The range is 1–60,000, and the default value is 5000.
+++ diff --git a/docs/apig/umn/apig_03_0093.html b/docs/apig/umn/apig_03_0093.html new file mode 100644 index 00000000..173a47a0 --- /dev/null +++ b/docs/apig/umn/apig_03_0093.html @@ -0,0 +1,95 @@ + + +++Parent topic: Extended Definition+x-apigateway-backend.httpVpcEndpoints
++Meaning: HTTP VPC backend service definition.
+Scope of effect: x-apigateway-backend
+Example:
+paths: + '/users/{userId}': + get: + produces: + - "application/json" + parameters: + - name: "X-Auth-Token" + description: "Authentication token" + type: "string" + in: "header" + required: true + responses: + default: + description: "default response" + x-apigateway-request-type: "public" + x-apigateway-backend: + type: "HTTP-VPC" + httpVpcEndpoints: + name: "vpc-test-1" + scheme: "http" + method: "GET" + path: "/users" + timeout: 30000+ +++
Table 1 Parameter description + + + Parameter
++ Mandatory
++ Type
++ Description
++ + name
++ Yes
++ Array
++ VPC channel name.
++ + scheme
++ Yes
++ String
++ Backend request protocol. HTTP and HTTPS are supported.
++ + method
++ Yes
++ String
++ Backend request method. The options include GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH, and ANY.
++ + path
++ Yes
++ String
++ Backend request path, which can contain variables.
++ + + timeout
++ No
++ Number
++ Backend request timeout in milliseconds. The range is 1–60,000, and the default value is 5000.
+++ diff --git a/docs/apig/umn/apig_03_0094.html b/docs/apig/umn/apig_03_0094.html new file mode 100644 index 00000000..ac55347d --- /dev/null +++ b/docs/apig/umn/apig_03_0094.html @@ -0,0 +1,85 @@ + + +++Parent topic: Extended Definition+x-apigateway-backend.functionEndpoints
++Meaning: Function backend service definition.
+Scope of effect: x-apigateway-backend
+Example:
+paths: + '/users/{userId}': + get: + produces: + - "application/json" + parameters: + - name: "X-Auth-Token" + description: "Authentication token" + type: "string" + in: "header" + required: true + responses: + default: + description: "default response" + x-apigateway-request-type: "public" + x-apigateway-backend: + type: "FUNCTION" + functionEndpoints: + version: "v1" + function-urn: "" + invocation-type: "synchronous" + timeout: 30000+ +++
Table 1 Parameter description + + + Parameter
++ Mandatory
++ Type
++ Description
++ + function-urn
++ Yes
++ String
++ Function URN.
++ + version
++ Yes
++ String
++ Function version.
++ + invocation-type
++ Yes
++ String
++ Function invocation type. The value can be async or sync.
++ + + timeout
++ No
++ Number
++ Function timeout in milliseconds. The range is 1–60,000, and the default value is 5000.
+++ diff --git a/docs/apig/umn/apig_03_0095.html b/docs/apig/umn/apig_03_0095.html new file mode 100644 index 00000000..2f616663 --- /dev/null +++ b/docs/apig/umn/apig_03_0095.html @@ -0,0 +1,55 @@ + + +++Parent topic: Extended Definition+x-apigateway-backend.mockEndpoints
++Meaning: Mock backend service definition.
+Scope of effect: x-apigateway-backend
+Example:
+paths: + '/users/{userId}': + get: + produces: + - "application/json" + parameters: + - name: "X-Auth-Token" + description: "Authentication token" + type: "string" + in: "header" + required: true + responses: + default: + description: "default response" + x-apigateway-request-type: "public" + x-apigateway-backend: + type: "MOCK" + mockEndpoints: + result-content: "mocked"+ +++
Table 1 Parameter description + + + Parameter
++ Mandatory
++ Type
++ Description
++ + + result-content
++ Yes
++ String
++ Mock response.
+++ diff --git a/docs/apig/umn/apig_03_0096.html b/docs/apig/umn/apig_03_0096.html new file mode 100644 index 00000000..076405f8 --- /dev/null +++ b/docs/apig/umn/apig_03_0096.html @@ -0,0 +1,127 @@ + + +++Parent topic: Extended Definition+x-apigateway-backend-policies
++Meaning: API backend policy.
+Scope of effect: Operation Object (2.0)/Operation Object (3.0)
+Example:
+paths: + '/users/{userId}': + get: + produces: + - "application/json" + responses: + default: + description: "default response" + x-apigateway-request-type: "public" + x-apigateway-backend: + type: "backend endpoint type" + x-apigateway-backend-policies: + - type: "backend endpoint type" + name: "backend policy name" + conditions: + - type: "equal/enum/pattern", + value: "string", + origin: "source/request_parameter", + parameter_name: "string"+ +++
Table 1 Parameter description + + + Parameter
++ Mandatory
++ Type
++ Description
++ + x-apigateway-backend-policies
++ No
++ x-apigateway-backend-policies
++ Backend policies.
++ + type
++ Yes
++ String
++ Backend service type. The options include HTTP, HTTP-VPC, FUNCTION, and MOCK.
++ + name
++ Yes
++ String
++ Backend policy name.
++ + parameters
++ No
++ ++ Backend parameters.
++ + httpEndpoints
++ No
++ ++ HTTP service definition.
++ + httpVpcEndpoints
++ No
++ ++ HTTP-VPC service definition.
++ + functionEndpoints
++ No
++ ++ Function service definition.
++ + mockEndpoints
++ No
++ ++ Mock service definition.
++ + + conditions
++ Yes
++ ++ Policy condition array.
+++ diff --git a/docs/apig/umn/apig_03_0097.html b/docs/apig/umn/apig_03_0097.html new file mode 100644 index 00000000..92058dc7 --- /dev/null +++ b/docs/apig/umn/apig_03_0097.html @@ -0,0 +1,82 @@ + + +++Parent topic: Extended Definition+x-apigateway-backend-policies.conditions
++Meaning: API backend policy conditions.
+Scope of effect: x-apigateway-backend-policies
+Example:
+paths: + '/users/{userId}': + get: + produces: + - "application/json" + responses: + default: + description: "default response" + x-apigateway-request-type: "public" + x-apigateway-backend: + type: "backend endpoint type" + x-apigateway-backend-policies: + - type: "backend endpoint type" + name: "backend policy name" + conditions: + - type: "equal/enum/pattern", + value: "string", + origin: "source/request_parameter", + parameter_name: "string"+ +++
Table 1 Parameter description + + + Parameter
++ Mandatory
++ Type
++ Description
++ + type
++ Yes
++ String
++ Policy condition type. The options include equal, enum, and pattern.
++ + value
++ Yes
++ String
++ Policy condition value.
++ + origin
++ Yes
++ String
++ Policy condition source. The options include source and request.
++ + + parameter
++ No
++ String
++ Input parameter name if the origin parameter is set to request.
+++ diff --git a/docs/apig/umn/apig_03_0098.html b/docs/apig/umn/apig_03_0098.html new file mode 100644 index 00000000..ac45bab8 --- /dev/null +++ b/docs/apig/umn/apig_03_0098.html @@ -0,0 +1,40 @@ + + +++Parent topic: Extended Definition+x-apigateway-ratelimit
++Meaning: Request throttling policy.
+Scope of effect: Operation Object (2.0)/Operation Object (3.0)
+Example:
+paths: + '/path': + get: + x-apigateway-ratelimit: 'customRatelimitName'+ +++
Table 1 Parameter description + + + Parameter
++ Mandatory
++ Type
++ Description
++ + + x-apigateway-ratelimit
++ No
++ String
++ Request throttling policy.
+++ diff --git a/docs/apig/umn/apig_03_0099.html b/docs/apig/umn/apig_03_0099.html new file mode 100644 index 00000000..22ab1499 --- /dev/null +++ b/docs/apig/umn/apig_03_0099.html @@ -0,0 +1,50 @@ + + +++Parent topic: Extended Definition+x-apigateway-ratelimits
++Meaning: Mapping between a request throttling policy name and limit values.
+Scope of effect: Swagger Object
+Example:
+x-apigateway-ratelimits: + customRatelimitName: + api-limit: 200 + app-limit: 200 + user-limit: 200 + ip-limit: 200 + interval: 1 + unit: second/minute/hour + shared: true + special: + - type: APP + limit: 100 + instance: xxxxxxxxx+ +++
Table 1 Parameter description + + + Parameter
++ Mandatory
++ Type
++ Description
++ + + customRatelimitName
++ No
++ ++ Name of a request throttling policy.
+To use the policy, set x-apigateway-ratelimit to the policy name.
+++ diff --git a/docs/apig/umn/apig_03_0100.html b/docs/apig/umn/apig_03_0100.html new file mode 100644 index 00000000..b5b7252d --- /dev/null +++ b/docs/apig/umn/apig_03_0100.html @@ -0,0 +1,113 @@ + + +++Parent topic: Extended Definition+x-apigateway-ratelimits.policy
++Meaning: Definition of a request throttling policy.
+Scope of effect: x-apigateway-ratelimits
+Example:
+x-apigateway-ratelimits: + customRatelimitName: + api-limit: 200 + app-limit: 200 + user-limit: 200 + ip-limit: 200 + interval: 1 + unit: MINUTE + shared: false + special: + - type: USER + limit: 100 + instance: xxxxxxx+ +++
Table 1 Parameter description + + + Parameter
++ Mandatory
++ Type
++ Description
++ + api-limit
++ Yes
++ Number
++ Maximum number of times an API can be called.
++ + user-limit
++ No
++ Number
++ Maximum number of times the API can be called by a user.
++ + app-limit
++ No
++ Number
++ Maximum number of times the API can be called by an app.
++ + ip-limit
++ No
++ Number
++ Maximum number of times the API can be called by an IP address.
++ + interval
++ Yes
++ Number
++ Throttling period.
++ + unit
++ Yes
++ String
++ Throttling unit, which can be SECOND, MINUTE, HOUR, or DAY.
++ + shared
++ No
++ Boolean
++ Whether to share the throttling limits among APIs.
++ + + special
++ No
++ x-apigateway-ratelimits.policy.special
+Array
++ Special request throttling policy.
+++ diff --git a/docs/apig/umn/apig_03_0101.html b/docs/apig/umn/apig_03_0101.html new file mode 100644 index 00000000..030f5fa8 --- /dev/null +++ b/docs/apig/umn/apig_03_0101.html @@ -0,0 +1,67 @@ + + +++Parent topic: Extended Definition+x-apigateway-ratelimits.policy.special
++Meaning: Definition of a special request throttling policy.
+Scope of effect: x-apigateway-ratelimits.policy
+Example:
+x-apigateway-ratelimits: + customRatelimitName: + api-limit: 200 + app-limit: 200 + user-limit: 200 + ip-limit: 200 + interval: 1 + unit: MINUTE + shared: false + special: + - type: USER + limit: 100 + instance: xxxxxxxx+ +++
Table 1 Parameter description + + + Parameter
++ Mandatory
++ Type
++ Description
++ + type
++ Yes
++ String
++ Special request throttling policy type, which can be APP or USER.
++ + limit
++ Yes
++ Number
++ Access limit.
++ + + instance
++ Yes
++ String
++ ID of an excluded app or user.
+++ diff --git a/docs/apig/umn/apig_03_0102.html b/docs/apig/umn/apig_03_0102.html new file mode 100644 index 00000000..811721c7 --- /dev/null +++ b/docs/apig/umn/apig_03_0102.html @@ -0,0 +1,40 @@ + + +++Parent topic: Extended Definition+x-apigateway-access-control
++Meaning: Access control policy.
+Scope of effect: Operation Object (2.0)/Operation Object (3.0)
+Example:
+paths: + '/path': + get: + x-apigateway-access-control: 'customAccessControlName'+ +++
Table 1 Parameter description + + + Parameter
++ Mandatory
++ Type
++ Description
++ + + x-apigateway-access-control
++ No
++ String
++ Access control policy.
+++ diff --git a/docs/apig/umn/apig_03_0103.html b/docs/apig/umn/apig_03_0103.html new file mode 100644 index 00000000..52b6c808 --- /dev/null +++ b/docs/apig/umn/apig_03_0103.html @@ -0,0 +1,42 @@ + + +++Parent topic: Extended Definition+x-apigateway-access-controls
++Meaning: Mapping between an access control policy name and limit settings.
+Scope of effect: Swagger Object
+Example:
+x-apigateway-access-controls: + customAccessControlName: + acl-type: "DENY" + entity-type: "IP" + value: 127.0.0.1,192.168.0.1/16+ +++
Table 1 Parameter description + + + Parameter
++ Mandatory
++ Type
++ Description
++ + + customAccessControlName
++ No
++ ++ Name of an access control policy.
+To use the policy, set x-apigateway-access-control to the policy name.
+++ diff --git a/docs/apig/umn/apig_03_0104.html b/docs/apig/umn/apig_03_0104.html new file mode 100644 index 00000000..c511beda --- /dev/null +++ b/docs/apig/umn/apig_03_0104.html @@ -0,0 +1,59 @@ + + +++Parent topic: Extended Definition+x-apigateway-access-controls.policy
++Meaning: Definition of an access control policy.
+Scope of effect: x-apigateway-access-controls
+Example:
+x-apigateway-access-controls: + customAccessControlName: + acl-type: "DENY" + entity-type: "IP" + value: 127.0.0.1,192.168.0.1/16+ +++
Table 1 Parameter description + + + Parameter
++ Mandatory
++ Type
++ Description
++ + acl-type
++ Yes
++ String
++ Access control effect. The options include PERMIT and DENY.
++ + entity-type
++ Yes
++ String
++ Access control object. Only IP addresses are supported.
++ + + value
++ Yes
++ String
++ Access control values, which are separated with commas (,).
+++ diff --git a/docs/apig/umn/apig_03_0105.html b/docs/apig/umn/apig_03_0105.html new file mode 100644 index 00000000..d0380ade --- /dev/null +++ b/docs/apig/umn/apig_03_0105.html @@ -0,0 +1,41 @@ + + +++Parent topic: Extended Definition+x-apigateway-plugins
++Meaning: API plug-in service.
+Scope of effect: Operation Object (2.0)/Operation Object (3.0)
+Example:
+paths: + '/path': + get: + x-apigateway-plugins: ['Plugin_mock'] +x-apigateway-plugins+ +++
Table 1 Parameter description + + + Parameter
++ Mandatory
++ Type
++ Description
++ + + x-apigateway-plugins
++ No
++ Array
++ List of plug-ins bound to the API.
+++ diff --git a/docs/apig/umn/apig_03_0106.html b/docs/apig/umn/apig_03_0106.html new file mode 100644 index 00000000..f8d5dd16 --- /dev/null +++ b/docs/apig/umn/apig_03_0106.html @@ -0,0 +1,41 @@ + + +++Parent topic: Extended Definition+x-apigateway-is-send-fg-body-base64
++Meaning: Whether to perform Base64 encoding on the request body used for interaction with FunctionGraph. The value is of the Boolean type.
+Scope of effect: Operation Object (2.0)/Operation Object (3.0)
+Example:
+paths: + '/path': + get: + "x-apigateway-is-send-fg-body-base64": true+ +++
Table 1 Parameter description + + + Parameter
++ Mandatory
++ Type
++ Description
++ + + x-apigateway-is-send-fg-body-base64
++ No
++ boolean
++ Specifies whether to perform Base64 encoding on the request body for interaction with FunctionGraph.
++
- true: yes
- false: no
++ diff --git a/docs/apig/umn/apig_03_0200.html b/docs/apig/umn/apig_03_0200.html new file mode 100644 index 00000000..65b02c0b --- /dev/null +++ b/docs/apig/umn/apig_03_0200.html @@ -0,0 +1,27 @@ + + + +++Parent topic: Extended Definition+Service Overview
+ +++ ++ ++ diff --git a/docs/apig/umn/apig_03_1002.html b/docs/apig/umn/apig_03_1002.html new file mode 100644 index 00000000..3b233b55 --- /dev/null +++ b/docs/apig/umn/apig_03_1002.html @@ -0,0 +1,19 @@ + + + +Getting Started
+ +++ +++ diff --git a/docs/apig/umn/en-us_image_0000001130533706.png b/docs/apig/umn/en-us_image_0000001130533706.png deleted file mode 100644 index 8c847897..00000000 Binary files a/docs/apig/umn/en-us_image_0000001130533706.png and /dev/null differ diff --git a/docs/apig/umn/en-us_image_0000001130693484.png b/docs/apig/umn/en-us_image_0000001130693484.png deleted file mode 100644 index 536bfa53..00000000 Binary files a/docs/apig/umn/en-us_image_0000001130693484.png and /dev/null differ diff --git a/docs/apig/umn/en-us_image_0000001142757900.png b/docs/apig/umn/en-us_image_0000001142757900.png deleted file mode 100644 index 63b195ce..00000000 Binary files a/docs/apig/umn/en-us_image_0000001142757900.png and /dev/null differ diff --git a/docs/apig/umn/en-us_image_0000001142758142.png b/docs/apig/umn/en-us_image_0000001142758142.png deleted file mode 100644 index c3c63400..00000000 Binary files a/docs/apig/umn/en-us_image_0000001142758142.png and /dev/null differ diff --git a/docs/apig/umn/en-us_image_0000001142758222.png b/docs/apig/umn/en-us_image_0000001142758222.png deleted file mode 100644 index 29675857..00000000 Binary files a/docs/apig/umn/en-us_image_0000001142758222.png and /dev/null differ diff --git a/docs/apig/umn/en-us_image_0000001142758280.png b/docs/apig/umn/en-us_image_0000001142758280.png deleted file mode 100644 index 63c837ef..00000000 Binary files a/docs/apig/umn/en-us_image_0000001142758280.png and /dev/null differ diff --git a/docs/apig/umn/en-us_image_0000001142745766.png b/docs/apig/umn/en-us_image_0000001176135930.png similarity index 100% rename from docs/apig/umn/en-us_image_0000001142745766.png rename to docs/apig/umn/en-us_image_0000001176135930.png diff --git a/docs/apig/umn/en-us_image_0000001176294490.png b/docs/apig/umn/en-us_image_0000001176294490.png new file mode 100644 index 00000000..73ad0cee Binary files /dev/null and b/docs/apig/umn/en-us_image_0000001176294490.png differ diff --git a/docs/apig/umn/en-us_image_0000001176584542.png b/docs/apig/umn/en-us_image_0000001176584542.png new file mode 100644 index 00000000..71d19e3e Binary files /dev/null and b/docs/apig/umn/en-us_image_0000001176584542.png differ diff --git a/docs/apig/umn/en-us_image_0000001142917658.png b/docs/apig/umn/en-us_image_0000001178542512.png similarity index 100% rename from docs/apig/umn/en-us_image_0000001142917658.png rename to docs/apig/umn/en-us_image_0000001178542512.png diff --git a/docs/apig/umn/en-us_image_0000001179806978.png b/docs/apig/umn/en-us_image_0000001179806978.png deleted file mode 100644 index 048d5bbb..00000000 Binary files a/docs/apig/umn/en-us_image_0000001179806978.png and /dev/null differ diff --git a/docs/apig/umn/en-us_image_0000001180286140.png b/docs/apig/umn/en-us_image_0000001180286140.png deleted file mode 100644 index b0745658..00000000 Binary files a/docs/apig/umn/en-us_image_0000001180286140.png and /dev/null differ diff --git a/docs/apig/umn/en-us_image_0000001184669836.png b/docs/apig/umn/en-us_image_0000001184669836.png new file mode 100644 index 00000000..6b139798 Binary files /dev/null and b/docs/apig/umn/en-us_image_0000001184669836.png differ diff --git a/docs/apig/umn/en-us_image_0000001184670172.png b/docs/apig/umn/en-us_image_0000001184670172.png new file mode 100644 index 00000000..a289c851 Binary files /dev/null and b/docs/apig/umn/en-us_image_0000001184670172.png differ diff --git a/docs/apig/umn/en-us_image_0000001184829492.png b/docs/apig/umn/en-us_image_0000001184829492.png new file mode 100644 index 00000000..6705e53a Binary files /dev/null and b/docs/apig/umn/en-us_image_0000001184829492.png differ diff --git a/docs/apig/umn/en-us_image_0000001188656221.png b/docs/apig/umn/en-us_image_0000001188656221.png deleted file mode 100644 index 2de7b42e..00000000 Binary files a/docs/apig/umn/en-us_image_0000001188656221.png and /dev/null differ diff --git a/docs/apig/umn/en-us_image_0000001188785509.png b/docs/apig/umn/en-us_image_0000001188785509.png deleted file mode 100644 index e0c8c3e5..00000000 Binary files a/docs/apig/umn/en-us_image_0000001188785509.png and /dev/null differ diff --git a/docs/apig/umn/en-us_image_0000001188797557.png b/docs/apig/umn/en-us_image_0000001188797557.png deleted file mode 100644 index 6216c334..00000000 Binary files a/docs/apig/umn/en-us_image_0000001188797557.png and /dev/null differ diff --git a/docs/apig/umn/en-us_image_0000001188825671.png b/docs/apig/umn/en-us_image_0000001188825671.png deleted file mode 100644 index ddbe260e..00000000 Binary files a/docs/apig/umn/en-us_image_0000001188825671.png and /dev/null differ diff --git a/docs/apig/umn/en-us_image_0000001188830213.png b/docs/apig/umn/en-us_image_0000001188830213.png deleted file mode 100644 index 0eed9ccf..00000000 Binary files a/docs/apig/umn/en-us_image_0000001188830213.png and /dev/null differ diff --git a/docs/apig/umn/en-us_image_0000001188838057.png b/docs/apig/umn/en-us_image_0000001188838057.png deleted file mode 100644 index 2b97cc5b..00000000 Binary files a/docs/apig/umn/en-us_image_0000001188838057.png and /dev/null differ diff --git a/docs/apig/umn/en-us_image_0000001197413876.jpg b/docs/apig/umn/en-us_image_0000001197413876.jpg deleted file mode 100644 index 78813179..00000000 Binary files a/docs/apig/umn/en-us_image_0000001197413876.jpg and /dev/null differ diff --git a/docs/apig/umn/en-us_image_0000001214314084.png b/docs/apig/umn/en-us_image_0000001214314084.png new file mode 100644 index 00000000..4ee80a8d Binary files /dev/null and b/docs/apig/umn/en-us_image_0000001214314084.png differ diff --git a/docs/apig/umn/en-us_image_0000001221455679.png b/docs/apig/umn/en-us_image_0000001221455679.png new file mode 100644 index 00000000..a5d8fadd Binary files /dev/null and b/docs/apig/umn/en-us_image_0000001221455679.png differ diff --git a/docs/apig/umn/en-us_image_0000001223730735.png b/docs/apig/umn/en-us_image_0000001223730735.png new file mode 100644 index 00000000..d3ba2d1d Binary files /dev/null and b/docs/apig/umn/en-us_image_0000001223730735.png differ diff --git a/docs/apig/umn/en-us_image_0000001224966973.png b/docs/apig/umn/en-us_image_0000001224966973.png deleted file mode 100644 index cbaaa961..00000000 Binary files a/docs/apig/umn/en-us_image_0000001224966973.png and /dev/null differ diff --git a/docs/apig/umn/en-us_image_0000001142927584.png b/docs/apig/umn/en-us_image_0000001225120971.png similarity index 100% rename from docs/apig/umn/en-us_image_0000001142927584.png rename to docs/apig/umn/en-us_image_0000001225120971.png diff --git a/docs/apig/umn/en-us_image_0000001225404945.png b/docs/apig/umn/en-us_image_0000001225404945.png deleted file mode 100644 index fe3f16ed..00000000 Binary files a/docs/apig/umn/en-us_image_0000001225404945.png and /dev/null differ diff --git a/docs/apig/umn/en-us_image_0000001227056681.png b/docs/apig/umn/en-us_image_0000001227056681.png new file mode 100644 index 00000000..86db1295 Binary files /dev/null and b/docs/apig/umn/en-us_image_0000001227056681.png differ diff --git a/docs/apig/umn/en-us_image_0000001228425421.png b/docs/apig/umn/en-us_image_0000001228425421.png new file mode 100644 index 00000000..4f7aedf8 Binary files /dev/null and b/docs/apig/umn/en-us_image_0000001228425421.png differ diff --git a/docs/apig/umn/en-us_image_0000001239189917.png b/docs/apig/umn/en-us_image_0000001239189917.png index ea4796e7..8ed547f7 100644 Binary files a/docs/apig/umn/en-us_image_0000001239189917.png and b/docs/apig/umn/en-us_image_0000001239189917.png differ diff --git a/docs/apig/umn/en-us_image_0000001239526104.png b/docs/apig/umn/en-us_image_0000001239526104.png deleted file mode 100644 index da9bf799..00000000 Binary files a/docs/apig/umn/en-us_image_0000001239526104.png and /dev/null differ diff --git a/docs/apig/umn/en-us_image_0000001181165262.png b/docs/apig/umn/en-us_image_0000001270381908.png similarity index 100% rename from docs/apig/umn/en-us_image_0000001181165262.png rename to docs/apig/umn/en-us_image_0000001270381908.png diff --git a/docs/apig/umn/en-us_image_0000001142758126.png b/docs/apig/umn/en-us_image_0000001278830029.png similarity index 100% rename from docs/apig/umn/en-us_image_0000001142758126.png rename to docs/apig/umn/en-us_image_0000001278830029.png diff --git a/docs/apig/umn/en-us_image_0000001278833125.jpg b/docs/apig/umn/en-us_image_0000001278833125.jpg new file mode 100644 index 00000000..d896651b Binary files /dev/null and b/docs/apig/umn/en-us_image_0000001278833125.jpg differ diff --git a/docs/apig/umn/en-us_image_0000001188579631.png b/docs/apig/umn/en-us_image_0000001316742126.png similarity index 100% rename from docs/apig/umn/en-us_image_0000001188579631.png rename to docs/apig/umn/en-us_image_0000001316742126.png diff --git a/docs/apig/umn/en-us_image_0000001357603381.png b/docs/apig/umn/en-us_image_0000001357603381.png new file mode 100644 index 00000000..4478783c Binary files /dev/null and b/docs/apig/umn/en-us_image_0000001357603381.png differ diff --git a/docs/apig/umn/en-us_image_0000001142638662.png b/docs/apig/umn/en-us_image_0000001368310257.png similarity index 100% rename from docs/apig/umn/en-us_image_0000001142638662.png rename to docs/apig/umn/en-us_image_0000001368310257.png diff --git a/docs/apig/umn/en-us_image_0000001414384120.png b/docs/apig/umn/en-us_image_0000001414384120.png new file mode 100644 index 00000000..1dc44e74 Binary files /dev/null and b/docs/apig/umn/en-us_image_0000001414384120.png differ diff --git a/docs/apig/umn/en-us_image_0000001418236376.png b/docs/apig/umn/en-us_image_0000001418236376.png new file mode 100644 index 00000000..3762bea6 Binary files /dev/null and b/docs/apig/umn/en-us_image_0000001418236376.png differ diff --git a/docs/apig/umn/en-us_image_0000001475355676.png b/docs/apig/umn/en-us_image_0000001475355676.png new file mode 100644 index 00000000..4c5519e6 Binary files /dev/null and b/docs/apig/umn/en-us_image_0000001475355676.png differ diff --git a/docs/apig/umn/en-us_image_0000001485758705.png b/docs/apig/umn/en-us_image_0000001485758705.png new file mode 100644 index 00000000..921b1df9 Binary files /dev/null and b/docs/apig/umn/en-us_image_0000001485758705.png differ diff --git a/docs/apig/umn/en-us_image_0000001524872816.png b/docs/apig/umn/en-us_image_0000001524872816.png new file mode 100644 index 00000000..81a82503 Binary files /dev/null and b/docs/apig/umn/en-us_image_0000001524872816.png differ diff --git a/docs/apig/umn/en-us_image_0000001538755042.png b/docs/apig/umn/en-us_image_0000001538755042.png new file mode 100644 index 00000000..3474d95b Binary files /dev/null and b/docs/apig/umn/en-us_image_0000001538755042.png differ diff --git a/docs/apig/umn/en-us_image_0000001560598294.png b/docs/apig/umn/en-us_image_0000001560598294.png new file mode 100644 index 00000000..c4813104 Binary files /dev/null and b/docs/apig/umn/en-us_image_0000001560598294.png differ diff --git a/docs/apig/umn/en-us_image_0000001696678850.png b/docs/apig/umn/en-us_image_0000001696678850.png new file mode 100644 index 00000000..6b11888b Binary files /dev/null and b/docs/apig/umn/en-us_image_0000001696678850.png differ diff --git a/docs/apig/umn/en-us_image_0000001696838310.png b/docs/apig/umn/en-us_image_0000001696838310.png new file mode 100644 index 00000000..582b1618 Binary files /dev/null and b/docs/apig/umn/en-us_image_0000001696838310.png differ diff --git a/docs/apig/umn/en-us_image_0000001696838318.png b/docs/apig/umn/en-us_image_0000001696838318.png new file mode 100644 index 00000000..e4fcbfa9 Binary files /dev/null and b/docs/apig/umn/en-us_image_0000001696838318.png differ diff --git a/docs/apig/umn/en-us_image_0000001744598325.png b/docs/apig/umn/en-us_image_0000001744598325.png new file mode 100644 index 00000000..3e15dbf9 Binary files /dev/null and b/docs/apig/umn/en-us_image_0000001744598325.png differ diff --git a/docs/apig/umn/en-us_image_0000001744678489.jpg b/docs/apig/umn/en-us_image_0000001744678489.jpg new file mode 100644 index 00000000..fac6892b Binary files /dev/null and b/docs/apig/umn/en-us_image_0000001744678489.jpg differ diff --git a/docs/apig/umn/en-us_image_0000001758618249.png b/docs/apig/umn/en-us_image_0000001758618249.png new file mode 100644 index 00000000..0d21733f Binary files /dev/null and b/docs/apig/umn/en-us_image_0000001758618249.png differ diff --git a/docs/apig/umn/en-us_image_0000001182465263.png b/docs/apig/umn/en-us_image_0000001829896089.png similarity index 100% rename from docs/apig/umn/en-us_image_0000001182465263.png rename to docs/apig/umn/en-us_image_0000001829896089.png diff --git a/docs/apig/umn/en-us_image_0168722756.png b/docs/apig/umn/en-us_image_0168722756.png index acf7d7f0..4fc387cb 100644 Binary files a/docs/apig/umn/en-us_image_0168722756.png and b/docs/apig/umn/en-us_image_0168722756.png differ diff --git a/docs/apig/umn/en-us_image_0168722761.png b/docs/apig/umn/en-us_image_0168722761.png index c70379dd..adb700e4 100644 Binary files a/docs/apig/umn/en-us_image_0168722761.png and b/docs/apig/umn/en-us_image_0168722761.png differ diff --git a/docs/apig/umn/en-us_image_0168722767.png b/docs/apig/umn/en-us_image_0168722767.png new file mode 100644 index 00000000..e17f3ca0 Binary files /dev/null and b/docs/apig/umn/en-us_image_0168722767.png differ diff --git a/docs/apig/umn/en-us_topic_0000001174497029.html b/docs/apig/umn/en-us_topic_0000001174497029.html deleted file mode 100644 index b9f79967..00000000 --- a/docs/apig/umn/en-us_topic_0000001174497029.html +++ /dev/null @@ -1,190 +0,0 @@ - - -+
+- Introduction
+
+- Opening APIs
+
+- Calling APIs
+
+Log Analysis
---Scenario
This section describes how to obtain and analyze the API calling logs of dedicated gateways.
--Prerequisites
APIs have been called.
--Procedure
-
- Log in to the management console.
- In the navigation pane, choose Dedicated Gateways. Then click Access Console in the upper right corner of a dedicated gateway.
- Choose Configure Log Collection. , and click
- Enable log collection (
).
- Specify a log group and log stream, and click OK. For details about log groups and log streams, see Log Tank Service User Guide.
- Click Log Fields to view the description of each log field. Then view and analyze logs by referring to the log field descriptions.
- To export logs, see section "Log Transfer" in the Log Tank Service User Guide.
Fields in access logs are separated using spaces. The following table describes each log field.
- ---
Table 1 Log field description - - - No.
-- Field
-- Description
-- - 1
-- remote_addr
-- Client IP address
-- - 2
-- request_id
-- Request ID
-- - 3
-- api_id
-- API ID
-- - 4
-- user_id
-- Project ID provided by a requester for IAM authentication
-- - 5
-- app_id
-- App ID provided by a requester for app-based authentication
-- - 6
-- time_local
-- Time when a request is received
-- - 7
-- request_time
-- Request latency
-- - 8
-- request_method
-- HTTP request method
-- - 9
-- host
-- Domain name
-- - 10
-- router_uri
-- Request URI
-- - 11
-- server_protocol
-- Request protocol
-- - 12
-- status
-- Response status code
-- - 13
-- bytes_sent
-- Response size in bytes, including the status line, header, and body.
-- - 14
-- request_length
-- Request length in bytes, including the start line, header, and body.
-- - 15
-- http_user_agent
-- User agent ID
-- - 16
-- http_x_forwarded_for
-- X-Forwarded-For header field
-- - 17
-- upstream_addr
-- Backend address
-- - 18
-- upstream_uri
-- Backend URI
-- - 19
-- upstream_status
-- Backend response code
-- - 20
-- upstream_connect_time
-- Time taken for establishing a connection with the backend
-- - 21
-- upstream_header_time
-- Duration from the beginning of the establishment of a connection to receiving the first byte from the backend
-- - 22
-- upstream_response_time
-- Duration from the beginning of the establishment of a connection to receiving the last byte from the backend
-- - - 23
-- region_id
-- Region ID
--- diff --git a/docs/apig/umn/en-us_topic_0080101651.html b/docs/apig/umn/en-us_topic_0080101651.html deleted file mode 100644 index 68de9d7e..00000000 --- a/docs/apig/umn/en-us_topic_0080101651.html +++ /dev/null @@ -1,43 +0,0 @@ - - ---Parent topic: API Calling-Using APIG
-- - - \ No newline at end of file diff --git a/docs/apig/umn/en-us_topic_0080101678.html b/docs/apig/umn/en-us_topic_0080101678.html deleted file mode 100644 index 384a1707..00000000 --- a/docs/apig/umn/en-us_topic_0080101678.html +++ /dev/null @@ -1,178 +0,0 @@ - - -API Gateway (APIG) is a fully managed service that enables you to securely build, manage, and deploy APIs at any scale with high performance and availability. With APIG, you can easily integrate your internal service systems and selectively expose your service capabilities through its API opening and API calling functions.
--
- API Opening
Enterprises and developers selectively expose their services and data through APIG.
--Figure 1 API opening-The following figure shows the API opening process.
-Figure 2 API opening process--
- Create a gateway. -
- Create an API group.
Each API belongs to an API group. Create a group before creating an API.
-- Bind a domain name.
Before exposing an API, bind an independent domain name to the group so that users can access the API.
-You can debug the API using the default subdomain name allocated to the group to which the API belongs. The subdomain name can be called a maximum of 1000 times every day.
-- Create an API.
Encapsulate existing backend services into standard RESTful APIs and expose them to external systems.
-After creating an API, configure the following settings to control API access:
--
- Request throttling
Set the maximum number of times the API can be called within a time period to protect backend services.
-- Access control
Set a blacklist or whitelist to deny or allow API access from specific IP addresses or accounts.
-- Signature keys
Signature keys are used by backend services to verify the identity of APIG and ensure secure access.
-- Debug the API.
Verify whether the API is working normally.
-- Publish the API.
The API can be called only after it has been published in an environment.
--
- API calling
Enterprises and developers obtain and call APIs of other providers, thereby reducing development time and costs.
--Figure 3 API calling-The following figure shows the API calling process.
-Figure 4 API calling process--
- Obtain an API.
Obtain the API request information, including the domain name, protocol, method, path, and authentication mode.
-- Create an app.
For an API that uses app authentication, create an app to generate an AppKey and AppSecret. Bind the app to the API so that you can call the API through app authentication.
-- Obtain an SDK.
Use the SDK to generate a signature for the AK/SK and call the API.
-- Call the API.
Obtain the API using its access address and perform authentication based on its authentication mode.
-Creating an API
--Create an API with the following steps:
- --Setting Basic Information
-
- In the navigation pane, choose API Publishing > APIs.
- Click Create API and set the basic information. -
----
Table 1 Setting basic information - - - Parameter
-- Description
-- - Name
-- API name. It is recommended that you enter a name based on naming rules to facilitate search.
-- - API Group
-- By default, the group created in Creating an API Group is selected.
-- - Gateway Response
-- Select a response to be displayed if APIG fails to process an API request.
-The default gateway response is default.
-- - Visibility
-- By default, Public is selected.
-- - Security Authentication
-- API authentication mode. Set this parameter to App.
-- - Simple Authentication
-- If you enable this option, APIG verifies only the AppCode and the request signature does not need to be verified. For this example, enable simple authentication.
-- - Tag Name
-- Classification attribute used to quickly identify the API from other APIs.
-- - - Description
-- Description of the API.
-- Click Next.
-Defining API Request
-
- On the Define API Request page, set the request information. -
----
Table 2 Parameters for defining API requests - - - Parameter
-- Description
-- - Domain Name
-- The subdomain automatically allocated to the API group created in Creating an API Group.
-- - Protocol
-- Request protocol of the API. Set this parameter to HTTPS.
-- - Path
-- The path for requesting the API.
-- - Matching
-- By default, Exact match is selected.
-- - Method
-- Request method of the API. Set this parameter to POST.
-- - - CORS
-- For this example, disable this option.
-- Click Next.
-Defining Backend Service
-
- On the Define Backend Request page, set the backend service information.
- Select a backend service type. For this example, select HTTP/HTTPS. -
----
Table 3 Parameters for defining an HTTP/HTTPS backend service - - - Parameter
-- Description
-- - Protocol
-- Set this parameter to HTTP.
-- - Method
-- Request method of the API. Set this parameter to POST.
-- - VPC Channel
-- Determine whether the backend service will be accessed using a VPC channel. For this example, select Skip.
-- - Backend Address
-- Address of the backend service.
-- - Path
-- Path of the backend service.
-- - - Timeout
-- Backend service request timeout. Default value: 5000 ms.
-- Click Next.
-Defining Responses
-
- On the Define Response page, set the responses.
----
Table 4 Defining responses - - - Parameter
-- Description
-- - Example Success Response
-- An example of a response returned when the API is called successfully.
-- - - Example Failure Response
-- An example of a response returned when the API fails to be called.
-- Click Finish.
-- diff --git a/docs/apig/umn/en-us_topic_0084464485.html b/docs/apig/umn/en-us_topic_0084464485.html deleted file mode 100644 index cba801d0..00000000 --- a/docs/apig/umn/en-us_topic_0084464485.html +++ /dev/null @@ -1,13 +0,0 @@ - - ---Parent topic: Opening APIs-What Are the Relationships Between an API, Environment, and App?
--An API can be published in different environments, such as RELEASE (online environment) and BETA (test environment).
-An app refers to the identity of an API caller. After you create an app, the system automatically generates an AppKey and AppSecret for authenticating the app. After an API is published and assigned to an app, the owner of the app can call the API.
-After publishing an API in different environments, you can define different request throttling policies and authorize different apps to call the API. For example, during the test process, API v2 is published in the BETA environment and authorized to test apps. API v1 is stable and can be authorized to all users or apps in the RELEASE environment.
--- diff --git a/docs/apig/umn/en-us_topic_0084464486.html b/docs/apig/umn/en-us_topic_0084464486.html deleted file mode 100644 index f33202c5..00000000 --- a/docs/apig/umn/en-us_topic_0084464486.html +++ /dev/null @@ -1,15 +0,0 @@ - - ---Parent topic: Other FAQs-How Can I Use APIG?
--You can use APIG to manage and call APIs in the following ways:
--
- Management console, a web-based service management platform
If you have already registered an account, log in to the management console, click
-in the upper left corner, and choose APIG.
For details about the functions and operations of the APIG console, see the User Guide.
-- Java, Go, Python, JavaScript, C#, PHP, C++, C, and Android SDKs
Download an SDK and use it to call APIs. For details, see the Developer Guide.
--- diff --git a/docs/apig/umn/en-us_topic_0087908599.html b/docs/apig/umn/en-us_topic_0087908599.html deleted file mode 100644 index 9c90a97f..00000000 --- a/docs/apig/umn/en-us_topic_0087908599.html +++ /dev/null @@ -1,48 +0,0 @@ - - ---Parent topic: Other FAQs-What Are the Possible Causes If the Message "Backend unavailable" or "Backend timeout" Is Displayed?
--The following table lists the possible causes if a backend service fails to be invoked or the invocation times out.
- ---
- - - Possible Cause
-- Solution
-- - The backend service address is incorrect.
-- Change the backend service address in the API definition.
-If the domain name is used, ensure that the domain name can be correctly resolved to the IP address of the backend service.
-- - The timeout duration is incorrect.
-If a backend service fails to return a response within the configured timeout duration, APIG displays a message indicating that the backend service fails to be invoked.
-- Increase the backend timeout duration in the API definition.
-- - If the backend address is an ECS address, the security group to which the ECS belongs may block the request in the inbound or outbound direction.
-- Check the security group to which the ECS belongs and ensure that the inbound and outbound port rules and protocols of this security group are correct.
-- - The request protocol is incorrect. For example, the backend service uses HTTP, but HTTPS is selected on APIG.
-- Ensure that the protocol of the created API is the same as that of the backend service.
-- - - The backend service URL is unreachable.
-- Check the URL.
--- diff --git a/docs/apig/umn/index.html b/docs/apig/umn/index.html new file mode 100644 index 00000000..65b0181b --- /dev/null +++ b/docs/apig/umn/index.html @@ -0,0 +1,20 @@ + + +--Parent topic: API Calling-Common FAQs
+++API Creation
+
- How Do I Set the Backend Address If I Will Not Use a VPC Channel (or Load Balance Channel)?
- How Can I Configure the Backend Service Address?
- Can I Specify a Private Network Load Balancer Address for the Backend Service?
- Can I Specify the Backend Address as a Subnet IP Address?
- Can I Bind Private Domain Names for API Access?
+API Calling
+
- What Are the Possible Causes for an API Calling Failure?
- What Should I Do If an Error Code Is Returned During API Calling?
- What Should I Do If "The API does not exist or has not been published in the environment." Is Displayed?
- Why Am I Seeing the Message "No backend available"?
- What Are the Possible Causes If the Message "Backend unavailable" or "Backend timeout" Is Displayed?
+API Authentication
++API Control Policies
++API Import and Export
+++ diff --git a/docs/apig/umn/public_sys-resources/imageclose.gif b/docs/apig/umn/public_sys-resources/imageclose.gif deleted file mode 100644 index 3a3344af..00000000 Binary files a/docs/apig/umn/public_sys-resources/imageclose.gif and /dev/null differ diff --git a/docs/apig/umn/public_sys-resources/imageclosehover.gif b/docs/apig/umn/public_sys-resources/imageclosehover.gif deleted file mode 100644 index 8699d5e3..00000000 Binary files a/docs/apig/umn/public_sys-resources/imageclosehover.gif and /dev/null differ diff --git a/docs/apig/umn/public_sys-resources/imagemax.gif b/docs/apig/umn/public_sys-resources/imagemax.gif deleted file mode 100644 index 99c07dc2..00000000 Binary files a/docs/apig/umn/public_sys-resources/imagemax.gif and /dev/null differ diff --git a/docs/apig/umn/public_sys-resources/imagemaxhover.gif b/docs/apig/umn/public_sys-resources/imagemaxhover.gif deleted file mode 100644 index d01d77d6..00000000 Binary files a/docs/apig/umn/public_sys-resources/imagemaxhover.gif and /dev/null differ diff --git a/docs/apig/umn/public_sys-resources/macFFBgHack.png b/docs/apig/umn/public_sys-resources/macFFBgHack.png deleted file mode 100644 index ec811470..00000000 Binary files a/docs/apig/umn/public_sys-resources/macFFBgHack.png and /dev/null differ++Parent topic: FAQs+