APIG UMN 20230331 version

Reviewed-by: Hasko, Vladimir <vladimir.hasko@t-systems.com>
Co-authored-by: Chen, Junjie <chenjunjie@huawei.com>
Co-committed-by: Chen, Junjie <chenjunjie@huawei.com>
This commit is contained in:
Chen, Junjie 2023-06-01 08:59:08 +00:00 committed by zuul
parent 5692bff190
commit 91c429e341
222 changed files with 10548 additions and 0 deletions

File diff suppressed because it is too large Load Diff

1487
docs/apig/umn/CLASS.TXT.json Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,3 @@
version=""
language="en-us"
type=""

View File

@ -0,0 +1,21 @@
<a name="apic-ug-190430104"></a><a name="apic-ug-190430104"></a>
<h1 class="topictitle1">Custom Authorizers</h1>
<div id="body1567734680308"><p id="apic-ug-190430104__en-us_topic_0190314273_p8060118"></p>
</div>
<div>
<ul class="ullinks">
<li class="ulchildlink"><strong><a href="apic-ug-190430105.html">Creating a Custom Authorizer</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apic-ug-190430106.html">Deleting a Custom Authorizer</a></strong><br>
</li>
</ul>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-ug-0008.html">API Opening</a></div>
</div>
</div>

View File

@ -0,0 +1,74 @@
<a name="apic-ug-190430105"></a><a name="apic-ug-190430105"></a>
<h1 class="topictitle1">Creating a Custom Authorizer</h1>
<div id="body1567734681701"><div class="notice" id="apic-ug-190430105__note393918316161"><span class="noticetitle"><img src="public_sys-resources/notice_3.0-en-us.png"> </span><div class="noticebody"><p id="apic-ug-190430105__p49391539165">This feature is currently unavailable because FunctionGraph has not been launched.</p>
</div></div>
<div class="section" id="apic-ug-190430105__en-us_topic_0190314274_section82021509359"><h4 class="sectiontitle">Scenario</h4><p id="apic-ug-190430105__en-us_topic_0190314274_p1554211215447">APIG supports custom authentication of both frontend and backend requests.</p>
<ul id="apic-ug-190430105__en-us_topic_0190314274_ul2168135994418"><li id="apic-ug-190430105__en-us_topic_0190314274_li1916855920446">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.</li><li id="apic-ug-190430105__en-us_topic_0190314274_li2443192124520">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 the backend authentication system.</li></ul>
<div class="note" id="apic-ug-190430105__en-us_topic_0190314274_note184013376469"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="apic-ug-190430105__en-us_topic_0190314274_p2401537194615">Custom authentication is implemented using FunctionGraph and not supported if FunctionGraph is unavailable in the selected region.</p>
<p id="apic-ug-190430105__en-us_topic_0190314274_p1612866155615">For details about custom authentication, see <em id="apic-ug-190430105__en-us_topic_0190314274_i6558321154212">Developer Guide</em>.</p>
</div></div>
<p id="apic-ug-190430105__en-us_topic_0190314274_p175515517443">The following figure shows the process of calling APIs through custom authentication.</p>
<div class="fignone" id="apic-ug-190430105__en-us_topic_0190314274_fig6743111682417"><span class="figcap"><b>Figure 1 </b>Calling APIs through custom authentication</span><br><span><img id="apic-ug-190430105__en-us_topic_0190314274_image16681309018" src="en-us_image_0000001142758222.png"></span></div>
</div>
<div class="section" id="apic-ug-190430105__en-us_topic_0190314274_section174396106356"><h4 class="sectiontitle">Prerequisites</h4><ul id="apic-ug-190430105__ul10170203075214"><li id="apic-ug-190430105__li12170163045218">You have created a function in FunctionGraph.</li><li id="apic-ug-190430105__li1217043095218">You have the <strong id="apic-ug-190430105__b338815538574">FunctionGraph Administrator</strong> permission.</li></ul>
</div>
<div class="section" id="apic-ug-190430105__en-us_topic_0190314274_section57334161359"><h4 class="sectiontitle">Procedure</h4><ol id="apic-ug-190430105__en-us_topic_0190314274_ol1388135917558"><li id="apic-ug-190430105__en-us_topic_0190314274_li1831115541819"><span>Log in to the management console.</span></li><li id="apic-ug-190430105__en-us_topic_0190314274_li46871818394"><span>In the navigation pane, choose <strong id="apic-ug-190430105__en-us_topic_0190314274_b48248502154">Dedicated Gateways</strong>. Then click <strong id="apic-ug-190430105__en-us_topic_0190314274_b882511504154">Access Console</strong> in the upper right corner of a dedicated gateway.</span></li><li id="apic-ug-190430105__en-us_topic_0190314274_li1347811279416"><span>Choose <strong id="apic-ug-190430105__en-us_topic_0190314274_b257521317281">API Publishing</strong> &gt; <strong id="apic-ug-190430105__en-us_topic_0190314274_b728910490273">Custom Authorizers</strong>, and click <strong id="apic-ug-190430105__en-us_topic_0190314274_b15290134982714">Create Custom Authorizer</strong>.</span></li><li id="apic-ug-190430105__en-us_topic_0190314274_li132121615719"><span>Set the parameters listed in <a href="#apic-ug-190430105__table63864610016">Table 1</a>.</span><p><div class="p" id="apic-ug-190430105__p2178145813019">
<div class="tablenoborder"><a name="apic-ug-190430105__table63864610016"></a><a name="table63864610016"></a><table cellpadding="4" cellspacing="0" summary="" id="apic-ug-190430105__table63864610016" frame="border" border="1" rules="all"><caption><b>Table 1 </b>Parameters for creating a custom authorizer</caption><thead align="left"><tr id="apic-ug-190430105__row12351746509"><th align="left" class="cellrowborder" valign="top" width="18.63%" id="mcps1.3.4.2.4.2.1.1.2.3.1.1"><p id="apic-ug-190430105__p3351461802">Parameter</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="81.37%" id="mcps1.3.4.2.4.2.1.1.2.3.1.2"><p id="apic-ug-190430105__p83514461608">Description</p>
</th>
</tr>
</thead>
<tbody><tr id="apic-ug-190430105__row8354461303"><td class="cellrowborder" valign="top" width="18.63%" headers="mcps1.3.4.2.4.2.1.1.2.3.1.1 "><p id="apic-ug-190430105__p19351646003">Name</p>
</td>
<td class="cellrowborder" valign="top" width="81.37%" headers="mcps1.3.4.2.4.2.1.1.2.3.1.2 "><p id="apic-ug-190430105__p1354460014">Authorizer name.</p>
</td>
</tr>
<tr id="apic-ug-190430105__row15361546203"><td class="cellrowborder" valign="top" width="18.63%" headers="mcps1.3.4.2.4.2.1.1.2.3.1.1 "><p id="apic-ug-190430105__p7351946201">Type</p>
</td>
<td class="cellrowborder" valign="top" width="81.37%" headers="mcps1.3.4.2.4.2.1.1.2.3.1.2 "><ul id="apic-ug-190430105__ul17351846804"><li id="apic-ug-190430105__li133517461607"><strong id="apic-ug-190430105__en-us_topic_0190314274_b3101910152912">Frontend</strong>: Authenticates access to APIs.</li><li id="apic-ug-190430105__li113594614015"><strong id="apic-ug-190430105__en-us_topic_0190314274_b367542302912">Backend</strong>: Authenticates access to backend services.</li></ul>
</td>
</tr>
<tr id="apic-ug-190430105__row17363461808"><td class="cellrowborder" valign="top" width="18.63%" headers="mcps1.3.4.2.4.2.1.1.2.3.1.1 "><p id="apic-ug-190430105__p43611461305">Function URN</p>
</td>
<td class="cellrowborder" valign="top" width="81.37%" headers="mcps1.3.4.2.4.2.1.1.2.3.1.2 "><p id="apic-ug-190430105__p73611461705">Select a FunctionGraph function.</p>
</td>
</tr>
<tr id="apic-ug-190430105__row17361846807"><td class="cellrowborder" valign="top" width="18.63%" headers="mcps1.3.4.2.4.2.1.1.2.3.1.1 "><p id="apic-ug-190430105__p17361046309">Identity Sources</p>
</td>
<td class="cellrowborder" valign="top" width="81.37%" headers="mcps1.3.4.2.4.2.1.1.2.3.1.2 "><p id="apic-ug-190430105__p10361946506">Request parameters for authentication. You can add headers and query strings. Header names are case-insensitive.</p>
<p id="apic-ug-190430105__p73614611019">This parameter is mandatory only if you set <strong id="apic-ug-190430105__en-us_topic_0190314274_b5491145922012">Type</strong> to <strong id="apic-ug-190430105__en-us_topic_0190314274_b16429554213">Frontend</strong>, and <strong id="apic-ug-190430105__en-us_topic_0190314274_b15989984210">Max. Cache Age (s)</strong> is greater than <strong id="apic-ug-190430105__en-us_topic_0190314274_b202635118211">0</strong>. When the cache is used, this parameter is used as a search criterion to query authentication results.</p>
</td>
</tr>
<tr id="apic-ug-190430105__row13794612015"><td class="cellrowborder" valign="top" width="18.63%" headers="mcps1.3.4.2.4.2.1.1.2.3.1.1 "><p id="apic-ug-190430105__p43616469020">Max. Cache Age (s)</p>
</td>
<td class="cellrowborder" valign="top" width="81.37%" headers="mcps1.3.4.2.4.2.1.1.2.3.1.2 "><p id="apic-ug-190430105__p436154618018">The time for caching authentication results.</p>
<p id="apic-ug-190430105__p836646502">Value <strong id="apic-ug-190430105__en-us_topic_0190314274_b9619143115377">0</strong> means that authentication results will not be cached. The maximum value is <strong id="apic-ug-190430105__en-us_topic_0190314274_b1962153123718">3600</strong>.</p>
</td>
</tr>
<tr id="apic-ug-190430105__row1837846704"><td class="cellrowborder" valign="top" width="18.63%" headers="mcps1.3.4.2.4.2.1.1.2.3.1.1 "><p id="apic-ug-190430105__p183713467015">Send Request Body</p>
</td>
<td class="cellrowborder" valign="top" width="81.37%" headers="mcps1.3.4.2.4.2.1.1.2.3.1.2 "><p id="apic-ug-190430105__p113712466017">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.</p>
<div class="note" id="apic-ug-190430105__note537164616010"><span class="notetitle"> NOTE: </span><div class="notebody"><p id="apic-ug-190430105__p163714613016">This option is available only for dedicated API gateways.</p>
</div></div>
</td>
</tr>
<tr id="apic-ug-190430105__row1381246206"><td class="cellrowborder" valign="top" width="18.63%" headers="mcps1.3.4.2.4.2.1.1.2.3.1.1 "><p id="apic-ug-190430105__p0385461508">User Data</p>
</td>
<td class="cellrowborder" valign="top" width="81.37%" headers="mcps1.3.4.2.4.2.1.1.2.3.1.2 "><p id="apic-ug-190430105__p11381346308">Customized request parameters to be used together with <strong id="apic-ug-190430105__en-us_topic_0190314274_b97924713816">Identity Sources</strong> when APIG invokes a function.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</p></li><li id="apic-ug-190430105__en-us_topic_0190314274_li258413487573"><span>Click <strong id="apic-ug-190430105__en-us_topic_0190314274_b6229185515381">OK</strong>.</span></li></ol>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apic-ug-190430104.html">Custom Authorizers</a></div>
</div>
</div>

View File

@ -0,0 +1,18 @@
<a name="apic-ug-190430106"></a><a name="apic-ug-190430106"></a>
<h1 class="topictitle1">Deleting a Custom Authorizer</h1>
<div id="body1567734682305"><div class="section" id="apic-ug-190430106__en-us_topic_0190314275_section1288124051515"><h4 class="sectiontitle">Scenario</h4><p id="apic-ug-190430106__en-us_topic_0190314275_p12350184217151">You can delete custom authorizers you no longer require.</p>
<div class="note" id="apic-ug-190430106__en-us_topic_0190314275_note64806442019"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><ul id="apic-ug-190430106__en-us_topic_0190314275_ul7871145124818"><li id="apic-ug-190430106__en-us_topic_0190314275_li787154594815">Custom authentication is implemented using FunctionGraph and not supported if FunctionGraph is unavailable in the selected region.</li><li id="apic-ug-190430106__en-us_topic_0190314275_li18794544810">Custom authorizers that have been configured for APIs cannot be deleted.</li></ul>
</div></div>
</div>
<div class="section" id="apic-ug-190430106__en-us_topic_0190314275_section497534932116"><h4 class="sectiontitle">Prerequisites</h4><p id="apic-ug-190430106__en-us_topic_0190314275_p153978535219">You have <a href="apic-ug-190430105.html">created a custom authorizer</a>.</p>
</div>
<div class="section" id="apic-ug-190430106__en-us_topic_0190314275_section710174681512"><h4 class="sectiontitle">Procedure</h4><ol id="apic-ug-190430106__en-us_topic_0190314275_ol14964143051617"><li id="apic-ug-190430106__en-us_topic_0190314275_li1831115541819"><span>Log in to the management console.</span></li><li id="apic-ug-190430106__en-us_topic_0190314275_li46871818394"><span>In the navigation pane, choose <strong id="apic-ug-190430106__en-us_topic_0190314275_b187941753161510">Dedicated Gateways</strong>. Then click <strong id="apic-ug-190430106__en-us_topic_0190314275_b12799145315157">Access Console</strong> in the upper right corner of a dedicated gateway.</span></li><li id="apic-ug-190430106__en-us_topic_0190314275_li1347811279416"><span>Choose <strong id="apic-ug-190430106__en-us_topic_0190314275_b1970916431663">API Publishing</strong> &gt; <strong id="apic-ug-190430106__en-us_topic_0190314275_b92381328065">Custom Authorizers</strong>, and click <strong id="apic-ug-190430106__en-us_topic_0190314275_b6696401712">Delete</strong> in the row containing the custom authorizer you want to delete.</span></li><li id="apic-ug-190430106__en-us_topic_0190314275_li1112314390314"><span>Click <strong id="apic-ug-190430106__en-us_topic_0190314275_b5666185635119">Yes</strong>.</span></li></ol>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apic-ug-190430104.html">Custom Authorizers</a></div>
</div>
</div>

View File

@ -0,0 +1,45 @@
<a name="apig-custom-policy"></a><a name="apig-custom-policy"></a>
<h1 class="topictitle1">APIG Custom Policies</h1>
<div id="body1585035631993"><p id="apig-custom-policy__en-us_topic_0232979206_p958317321214">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 <em id="apig-custom-policy__i10321123255714">API Gateway API Reference</em>.</p>
<p id="apig-custom-policy__en-us_topic_0232979206_p11763528201217">You can create custom policies using one of the following methods:</p>
<ul id="apig-custom-policy__en-us_topic_0232979206_ul87631028191213"><li id="apig-custom-policy__en-us_topic_0232979206_li176382821219">Visual editor: Select cloud services, actions, resources, and request conditions. This does not require knowledge of policy syntax.</li><li id="apig-custom-policy__en-us_topic_0232979206_li1776320280124">JSON: Edit JSON policies from scratch or based on an existing policy.</li></ul>
<p id="apig-custom-policy__en-us_topic_0232979206_p38310456104">For details, see section "Creating a Custom Policy" in the <em id="apig-custom-policy__i143671496574">Identity and Access Management User Guide</em>. The following section contains examples of common APIG custom policies.</p>
<div class="note" id="apig-custom-policy__en-us_topic_0232979206_note416314130244"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="apig-custom-policy__en-us_topic_0232979206_p16164181311242">Only dedicated API gateways support system-defined policies and custom policies.</p>
</div></div>
<div class="section" id="apig-custom-policy__en-us_topic_0232979206_section207947385117"><h4 class="sectiontitle">Example Custom Policies</h4><ul id="apig-custom-policy__en-us_topic_0232979206_ul1379473816114"><li id="apig-custom-policy__en-us_topic_0232979206_li1679416383118">Example 1: Allow users to create and debug APIs<pre class="screen" id="apig-custom-policy__en-us_topic_0232979206_screen15794193891113">{
"Version": "1.1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"
apig:apis:create
apig:apis:debug
"
]
}
]
}</pre>
</li><li id="apig-custom-policy__en-us_topic_0232979206_li87948384116">Example 2: Deny API group creation<p id="apig-custom-policy__en-us_topic_0232979206_p079415386115"><a name="apig-custom-policy__en-us_topic_0232979206_li87948384116"></a><a name="en-us_topic_0232979206_li87948384116"></a>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.</p>
<p id="apig-custom-policy__en-us_topic_0232979206_p47946388118">The following method can be used if you need to assign permissions of the <strong id="apig-custom-policy__en-us_topic_0232979206_b6582529173710">APIG FullAccess</strong> 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:</p>
<pre class="screen" id="apig-custom-policy__en-us_topic_0232979206_screen14794038181119">{
"Version": "1.1",
"Statement": [
{
"Effect": "Deny",
"Action": [
"apig:groups:create"
]
}
]
}</pre>
</li></ul>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-ug-190529107.html">Permissions Management</a></div>
</div>
</div>

View File

@ -0,0 +1,17 @@
<a name="apig-en-faq-180307001"></a><a name="apig-en-faq-180307001"></a>
<h1 class="topictitle1">What Are the Error Messages Returned by APIG Like?</h1>
<div id="body1513649176968"><p id="apig-en-faq-180307001__en-us_topic_0089391837_p8060118">When receiving an API request, APIG returns a response. A similar response body is as follows:</p>
<pre class="screen" id="apig-en-faq-180307001__en-us_topic_0089391837_screen896515153425">{
"error_code": "APIG.0101",
"error_msg": "API does not exist or is not published in the environment.",
"request_id": "acbc548ac6f2a0dbdb9e3518a7c0ff84"
}</pre>
<ul id="apig-en-faq-180307001__en-us_topic_0089391837_ul59486177221"><li id="apig-en-faq-180307001__en-us_topic_0089391837_li179482176229"><strong id="apig-en-faq-180307001__en-us_topic_0089391837_b87091310194912">"error_code"</strong>: error code</li><li id="apig-en-faq-180307001__en-us_topic_0089391837_li20234731102219"><strong id="apig-en-faq-180307001__en-us_topic_0089391837_b10517185794816">"error_msg"</strong>: description of the error</li></ul>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-faq-180919014.html">Other FAQs</a></div>
</div>
</div>

View File

@ -0,0 +1,11 @@
<a name="apig-en-faq-180307002"></a><a name="apig-en-faq-180307002"></a>
<h1 class="topictitle1">Do I Need to Publish an API Again After Modification?</h1>
<div id="body1513649176968"><p id="apig-en-faq-180307002__en-us_topic_0089391838_p8060118">Yes. After you modify the parameters of a published API, you must publish the API again to synchronize the modifications to the environment.</p>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-faq-180919016.html">API Publishing</a></div>
</div>
</div>

View File

@ -0,0 +1,14 @@
<a name="apig-en-faq-180307003"></a><a name="apig-en-faq-180307003"></a>
<h1 class="topictitle1">How Can I Protect My APIs?</h1>
<div id="body1513649176968"><ul id="apig-en-faq-180307003__en-us_topic_0089391839_ul34341241168"><li id="apig-en-faq-180307003__en-us_topic_0089391839_li29636281068">Identity authentication<p id="apig-en-faq-180307003__en-us_topic_0089391839_p15725122910611"><a name="apig-en-faq-180307003__en-us_topic_0089391839_li29636281068"></a><a name="en-us_topic_0089391839_li29636281068"></a>Configure IAM or App authentication for APIs to prevent malicious calling.</p>
</li><li id="apig-en-faq-180307003__en-us_topic_0089391839_li334614127718">Access control policies<p id="apig-en-faq-180307003__en-us_topic_0089391839_p636214975"><a name="apig-en-faq-180307003__en-us_topic_0089391839_li334614127718"></a><a name="en-us_topic_0089391839_li334614127718"></a>Configure a whitelist or blacklist of IP addresses/IP address ranges or accounts for APIs to secure access.</p>
</li><li id="apig-en-faq-180307003__en-us_topic_0089391839_li4435424669">Request throttling policies<p id="apig-en-faq-180307003__en-us_topic_0089391839_p8060118"><a name="apig-en-faq-180307003__en-us_topic_0089391839_li4435424669"></a><a name="en-us_topic_0089391839_li4435424669"></a>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.</p>
</li></ul>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-faq-180919015.html">API Security</a></div>
</div>
</div>

View File

@ -0,0 +1,11 @@
<a name="apig-en-faq-180307004"></a><a name="apig-en-faq-180307004"></a>
<h1 class="topictitle1">Can Mobile Apps Call APIs?</h1>
<div id="body1513649176968"><p id="apig-en-faq-180307004__en-us_topic_0089391840_p8060118">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.</p>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-faq-180919017.html">API Calling</a></div>
</div>
</div>

View File

@ -0,0 +1,14 @@
<a name="apig-en-faq-180307006"></a><a name="apig-en-faq-180307006"></a>
<h1 class="topictitle1">Can I Upload Files Using the POST Method?</h1>
<div id="body1513649176968"><p id="apig-en-faq-180307006__en-us_topic_0089391842_p25248191833">Yes.</p>
<p id="apig-en-faq-180307006__en-us_topic_0089391842_p1636918478318">If you are using dedicated gateways, configure the maximum request body size allowed by setting the <strong id="apig-en-faq-180307006__b31709553616">request_body_size</strong> parameter. The value ranges from 1 MB to 9536 MB.</p>
<div class="note" id="apig-en-faq-180307006__note20886171145913"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="apig-en-faq-180307006__p28878125912">Currently, only the request body can be transparently transmitted.</p>
</div></div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-faq-180919014.html">Other FAQs</a></div>
</div>
</div>

View File

@ -0,0 +1,38 @@
<a name="apig-en-faq-180307008"></a><a name="apig-en-faq-180307008"></a>
<h1 class="topictitle1">Can Applications Deployed in a VPC Call APIs?</h1>
<div id="body1513827940996"><p id="apig-en-faq-180307008__en-us_topic_0089872475_p147418307461">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 <a href="#apig-en-faq-180307008__en-us_topic_0089872475_section856622113118">Configuring an Intranet DNS Server</a>. After the configuration, applications deployed in the VPC can call APIs.</p>
<div class="section" id="apig-en-faq-180307008__en-us_topic_0089872475_section856622113118"><a name="apig-en-faq-180307008__en-us_topic_0089872475_section856622113118"></a><a name="en-us_topic_0089872475_section856622113118"></a><h4 class="sectiontitle">Configuring an Intranet DNS Server</h4><p class="MsoNormal" id="apig-en-faq-180307008__en-us_topic_0089872475_p59002044">To configure a DNS server, specify its IP address in the <strong id="apig-en-faq-180307008__en-us_topic_0089872475_b1055789353172254">/etc/resolv.conf</strong> file.</p>
<p class="MsoNormal" id="apig-en-faq-180307008__p686935132811">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 <em id="apig-en-faq-180307008__i1311645362213">Domain Name Service FAQs</em>.</p>
<p id="apig-en-faq-180307008__en-us_topic_0089872475_p1345182812445">Add an intranet DNS server with either of the following two methods:</p>
<ul id="apig-en-faq-180307008__en-us_topic_0089872475_ul72651733194414"><li id="apig-en-faq-180307008__en-us_topic_0089872475_li164310423442">Method 1: Modify the subnet information of the VPC.</li><li id="apig-en-faq-180307008__en-us_topic_0089872475_li183471853154410">Method 2: Edit the <strong id="apig-en-faq-180307008__en-us_topic_0089872475_b842352706172843">/etc/resolv.conf</strong> file.<div class="note" id="apig-en-faq-180307008__en-us_topic_0089872475_note95521833153019"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="apig-en-faq-180307008__en-us_topic_0089872475_p6553833183013">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.</p>
</div></div>
</li></ul>
</div>
<div class="section" id="apig-en-faq-180307008__en-us_topic_0089872475_section15385141315316"><h4 class="sectiontitle">Method 1</h4><p id="apig-en-faq-180307008__en-us_topic_0089872475_p132171223113117">Perform the following procedure to add a DNS server IP address to the subnet configurations of the ECS in the VPC. </p>
<ol id="apig-en-faq-180307008__en-us_topic_0089872475_ol6442141303113"><li id="apig-en-faq-180307008__en-us_topic_0089872475_li144113139313"><span>Log in to the management console.</span></li><li id="apig-en-faq-180307008__en-us_topic_0089872475_en-us_topic_0080101678_li1763225213319"><span>Click <span><img id="apig-en-faq-180307008__image1373385310416" src="en-us_image_0143929918.png"></span> in the upper left corner to select a region.</span></li><li id="apig-en-faq-180307008__en-us_topic_0089872475_en-us_topic_0080101678_li2936408718728"><span>In the service list, choose <strong id="apig-en-faq-180307008__en-us_topic_0089872475_b7123125331317">Compute</strong> &gt; <strong id="apig-en-faq-180307008__en-us_topic_0089872475_b24831507132">Elastic Cloud Server</strong>.</span></li><li id="apig-en-faq-180307008__en-us_topic_0089872475_li18441151343112"><span>Click the name of the ECS you want to use.</span></li><li id="apig-en-faq-180307008__en-us_topic_0089872475_li16910204134212"><a name="apig-en-faq-180307008__en-us_topic_0089872475_li16910204134212"></a><a name="en-us_topic_0089872475_li16910204134212"></a><span>On the ECS details page, view the NIC information, and click <span><img id="apig-en-faq-180307008__en-us_topic_0089872475_image416924811155" src="en-us_image_0000001143167164.png"></span> to view the subnet name of the ECS.</span></li><li id="apig-en-faq-180307008__en-us_topic_0089872475_li144411613133111"><span>On the ECS basic information page, view the VPC name of the ECS.</span></li><li id="apig-en-faq-180307008__en-us_topic_0089872475_li18176162024812"><span>Click the VPC name to visit the VPC console.</span></li><li id="apig-en-faq-180307008__en-us_topic_0089872475_li1644111318311"><span>Choose <strong id="apig-en-faq-180307008__b163191110185317">Subnets</strong> in the left navigation pane.</span></li><li id="apig-en-faq-180307008__en-us_topic_0089872475_li1844191363111"><span>Locate the subnet mentioned in <a href="#apig-en-faq-180307008__en-us_topic_0089872475_li16910204134212">5</a> and click the subnet name.</span></li><li id="apig-en-faq-180307008__en-us_topic_0089872475_li13041961595"><span>Change the DNS server address of the subnet and click <strong id="apig-en-faq-180307008__b1252193935514">OK</strong>.</span><p><p id="apig-en-faq-180307008__en-us_topic_0089872475_p18639127115918">For example, change the address to <strong id="apig-en-faq-180307008__b1723254445514">100.125.1.250</strong>.</p>
</p></li><li id="apig-en-faq-180307008__en-us_topic_0089872475_li4442191314311"><span>Restart the ECS. Check that the <strong id="apig-en-faq-180307008__en-us_topic_0089872475_b842352706174213">/etc/resolv.conf</strong> 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.</span><p><p id="apig-en-faq-180307008__en-us_topic_0089872475_p1744762315">The following figure shows the IP address <strong id="apig-en-faq-180307008__en-us_topic_0089872475_b1761053182912">100.125.1.250</strong> of the DNS server to be configured.</p>
<p class="MsoNormal" id="apig-en-faq-180307008__en-us_topic_0089872475_p122471635311"><span><img id="apig-en-faq-180307008__en-us_topic_0089872475_image72477313318" src="en-us_image_0000001189007099.png" title="Click to enlarge" class="imgResize"></span></p>
<div class="note" id="apig-en-faq-180307008__en-us_topic_0089872475_note1124710320315"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p class="NotesText" id="apig-en-faq-180307008__en-us_topic_0089872475_p12476310314">Modifying the subnet information of a VPC will affect all ECSs created using the subnet.</p>
</div></div>
</p></li></ol>
</div>
<div class="section" id="apig-en-faq-180307008__en-us_topic_0089872475_section20214194333211"><h4 class="sectiontitle">Method 2</h4><p id="apig-en-faq-180307008__en-us_topic_0089872475_p156831510151">Add the IP address of the intranet DNS server to the <strong id="apig-en-faq-180307008__en-us_topic_0089872475_b159875416213">/etc/resolv.conf</strong> file.</p>
<p id="apig-en-faq-180307008__en-us_topic_0089872475_p11442213133115">For example, if you are located in <strong id="apig-en-faq-180307008__b1952045782019">region01</strong>, add an intranet DNS server of IP address <strong id="apig-en-faq-180307008__en-us_topic_0089872475_b8527626143217">100.125.1.250</strong> to the <strong id="apig-en-faq-180307008__en-us_topic_0089872475_b14591231193215">/etc/resolv.conf</strong> file.</p>
<div class="note" id="apig-en-faq-180307008__en-us_topic_0089872475_note1144471319312"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><ul id="apig-en-faq-180307008__en-us_topic_0089872475_ul125968273610"><li id="apig-en-faq-180307008__en-us_topic_0089872475_li17596427567">The IP address of the new DNS server must be less than those of all other DNS servers.</li><li id="apig-en-faq-180307008__en-us_topic_0089872475_li17343143010613">The DNS configurations take effect immediately after the <strong id="apig-en-faq-180307008__en-us_topic_0089872475_b141657157343">/etc/resolv.conf</strong> file is saved.</li></ul>
</div></div>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-faq-180919017.html">API Calling</a></div>
</div>
</div>
<script language="JavaScript">
<!--
image_size('.imgResize');
var msg_imageMax = "view original image";
var msg_imageClose = "close";
//--></script>

View File

@ -0,0 +1,15 @@
<a name="apig-en-faq-180307009"></a><a name="apig-en-faq-180307009"></a>
<h1 class="topictitle1">How Do I Ensure the Security of Backend Services Invoked by APIG?</h1>
<div id="body1516602210259"><p id="apig-en-faq-180307009__en-us_topic_0093963882_p1941784211261">You can ensure the security of backend services invoked by APIG by using the following methods:</p>
<ul id="apig-en-faq-180307009__en-us_topic_0093963882_ul1489013506289"><li id="apig-en-faq-180307009__en-us_topic_0093963882_li3412153302211">Bind signature keys to APIs<p id="apig-en-faq-180307009__en-us_topic_0093963882_p42472034152214"><a name="apig-en-faq-180307009__en-us_topic_0093963882_li3412153302211"></a><a name="en-us_topic_0093963882_li3412153302211"></a>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.</p>
</li><li id="apig-en-faq-180307009__en-us_topic_0093963882_li18433173610221">Encrypt requests using HTTPS<p id="apig-en-faq-180307009__en-us_topic_0093963882_p1449414376223"><a name="apig-en-faq-180307009__en-us_topic_0093963882_li18433173610221"></a><a name="en-us_topic_0093963882_li18433173610221"></a>Ensure that the required SSL certificate exists.</p>
</li><li id="apig-en-faq-180307009__en-us_topic_0093963882_li112921560139">Perform backend authentication<p id="apig-en-faq-180307009__en-us_topic_0093963882_p563031151613"><a name="apig-en-faq-180307009__en-us_topic_0093963882_li112921560139"></a><a name="en-us_topic_0093963882_li112921560139"></a>Enable security authentication for backend services of the desired APIs to process only API requests that carry correct authentication information.</p>
</li></ul>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-faq-180919015.html">API Security</a></div>
</div>
</div>

View File

@ -0,0 +1,11 @@
<a name="apig-en-faq-180606010"></a><a name="apig-en-faq-180606010"></a>
<h1 class="topictitle1">What SDK Languages Does APIG Support?</h1>
<div id="body1527296467241"><p id="apig-en-faq-180606010__en-us_topic_0114206515_p8060118">APIG supports Java, Go, Python, C#, JavaScript, PHP, C++, C, and Android SDKs.</p>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-faq-180919014.html">Other FAQs</a></div>
</div>
</div>

View File

@ -0,0 +1,13 @@
<a name="apig-en-faq-180606011"></a><a name="apig-en-faq-180606011"></a>
<h1 class="topictitle1">Why Can't APIs Published in a Non-RELEASE Environment Be Accessed?</h1>
<div id="body1527296467241"><p id="apig-en-faq-180606011__p250644182516">To make an API published in a non-RELEASE environment accessible, add the <strong id="apig-en-faq-180606011__b16663939194518">x-stage</strong> header to the API request.</p>
<p id="apig-en-faq-180606011__en-us_topic_0114206516_p8060118">Example:</p>
<pre class="screen" id="apig-en-faq-180606011__screen1337204919247">r.Header.Add("x-stage", "RELEASE")</pre>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-faq-180919016.html">API Publishing</a></div>
</div>
</div>

View File

@ -0,0 +1,11 @@
<a name="apig-en-faq-180606012"></a><a name="apig-en-faq-180606012"></a>
<h1 class="topictitle1">Does APIG Support Multiple Backend Endpoints?</h1>
<div id="body1527296467241"><p id="apig-en-faq-180606012__en-us_topic_0114206517_p8060118">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.</p>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-faq-create.html">API Creation</a></div>
</div>
</div>

View File

@ -0,0 +1,11 @@
<a name="apig-en-faq-180606013"></a><a name="apig-en-faq-180606013"></a>
<h1 class="topictitle1">What Is the Maximum Size of an API Request Package?</h1>
<div id="body1527296467241"><p id="apig-en-faq-180606013__en-us_topic_0114206518_p1636918478318">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 <strong id="apig-en-faq-180606013__b939515012394">request_body_size</strong> parameter on the gateway details page. This parameter indicates the maximum request body size allowed. The value ranges from 1 MB to 9536 MB.</p>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-faq-180919017.html">API Calling</a></div>
</div>
</div>

View File

@ -0,0 +1,29 @@
<a name="apig-en-faq-180919014"></a><a name="apig-en-faq-180919014"></a>
<h1 class="topictitle1">Other FAQs</h1>
<div id="body1537328448508"><p id="apig-en-faq-180919014__en-us_topic_0132100546_p8060118"></p>
</div>
<div>
<ul class="ullinks">
<li class="ulchildlink"><strong><a href="en-us_topic_0084464485.html">What Are the Relationships Between an API, Environment, and App?</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="en-us_topic_0084464486.html">How Can I Use APIG?</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-faq-180606010.html">What SDK Languages Does APIG Support?</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-faq-180307006.html">Can I Upload Files Using the POST Method?</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-faq-180307001.html">What Are the Error Messages Returned by APIG Like?</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-faq-20210414.html">Can APIG Be Deployed in a Local Data Center?</a></strong><br>
</li>
</ul>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-ug-cmccfaq.html">FAQs</a></div>
</div>
</div>

View File

@ -0,0 +1,19 @@
<a name="apig-en-faq-180919015"></a><a name="apig-en-faq-180919015"></a>
<h1 class="topictitle1">API Security</h1>
<div id="body1537328448508"></div>
<div>
<ul class="ullinks">
<li class="ulchildlink"><strong><a href="apig-en-faq-180307003.html">How Can I Protect My APIs?</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-faq-180307009.html">How Do I Ensure the Security of Backend Services Invoked by APIG?</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-faq-191201.html">Can I Control Access to the Private IP Addresses of the ECSs in a VPC Channel (or Load Balance Channel)?</a></strong><br>
</li>
</ul>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-ug-cmccfaq.html">FAQs</a></div>
</div>
</div>

View File

@ -0,0 +1,25 @@
<a name="apig-en-faq-180919016"></a><a name="apig-en-faq-180919016"></a>
<h1 class="topictitle1">API Publishing</h1>
<div id="body1537328981429"><p id="apig-en-faq-180919016__en-us_topic_0132117927_p8060118"></p>
</div>
<div>
<ul class="ullinks">
<li class="ulchildlink"><strong><a href="apig-en-faq-180307002.html">Do I Need to Publish an API Again After Modification?</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-faq-180606011.html">Why Can't APIs Published in a Non-RELEASE Environment Be Accessed?</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-faq-181016019.html">Can I Invoke Different Backend Services by Publishing an API in Different Environments?</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-faq-2005027.html">How Do I Specify an Environment for API Debugging?</a></strong><br>
</li>
</ul>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-ug-cmccfaq.html">FAQs</a></div>
</div>
</div>

View File

@ -0,0 +1,53 @@
<a name="apig-en-faq-180919017"></a><a name="apig-en-faq-180919017"></a>
<h1 class="topictitle1">API Calling</h1>
<div id="body1537328981429"></div>
<div>
<ul class="ullinks">
<li class="ulchildlink"><strong><a href="apig-faq-2005010.html">What Are the Possible Causes for an API Calling Failure?</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-faq-2005012.html">What Should I Do If an Error Code Is Returned During API Calling?</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-faq-2005022.html">Why Am I Seeing the Error Message "414 Request-URI Too Large" When I Call an API?</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-faq-19123002.html">What Should I Do If "The API does not exist or has not been published in the environment." Is Displayed?</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-faq-181016018.html">Why Am I Seeing the Message "No backend available"?</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="en-us_topic_0087908599.html">What Are the Possible Causes If the Message "Backend unavailable" or "Backend timeout" Is Displayed?</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-faq-0004.html">Why Am I Seeing the Message "Backend domain name resolution failed" When a Backend Service Is Called?</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-faq-19122004.html">Why Doesn't Modification of the backend_timeout Parameter Take Effect?</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-faq-2005011.html">How Do I Switch the Environment for API Calling?</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-faq-180606013.html">What Is the Maximum Size of an API Request Package?</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-faq-190515025.html">How Do I Perform App Authentication in iOS System?</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-faq-190627029.html">Why Can't I Create a Header Parameter Named x-auth-token for an API Called Through IAM Authentication?</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-faq-190627030.html">App FAQs</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-faq-180307004.html">Can Mobile Apps Call APIs?</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-faq-180307008.html">Can Applications Deployed in a VPC Call APIs?</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-faq-190627033.html">How Do I Implement WebSocket Data Transmission?</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-faq-19122001.html">Does APIG Support Persistent Connections?</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-faq-19123001.html">How Will the Requests for an API with Multiple Backend Policies Be Matched and Executed?</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-faq-19122003.html">Is There a Limit on the Size of the Response to an API Request?</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-faq-0007.html">How Can I Access Backend Services over Public Networks Through APIG?</a></strong><br>
</li>
</ul>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-ug-cmccfaq.html">FAQs</a></div>
</div>
</div>

View File

@ -0,0 +1,11 @@
<a name="apig-en-faq-181016018"></a><a name="apig-en-faq-181016018"></a>
<h1 class="topictitle1">Why Am I Seeing the Message "No backend available"?</h1>
<div id="body1539658342364"><ul id="apig-en-faq-181016018__en-us_topic_0135442565_ul1258265171417"><li id="apig-en-faq-181016018__en-us_topic_0135442565_li658295121417">Check whether the backend service is accessible, and modify the backend service if it is inaccessible.</li><li id="apig-en-faq-181016018__en-us_topic_0135442565_li3582135151415">Check the ECS security group configurations of the backend service and verify that the required port has been enabled.</li><li id="apig-en-faq-181016018__en-us_topic_0135442565_li4582451131412">Check whether ACL configurations of the VPC restrict the communication between the API gateway and the subnet where the backend service is located.</li><li id="apig-en-faq-181016018__en-us_topic_0135442565_li328135541419">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.</li></ul>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-faq-180919017.html">API Calling</a></div>
</div>
</div>

View File

@ -0,0 +1,11 @@
<a name="apig-en-faq-181016019"></a><a name="apig-en-faq-181016019"></a>
<h1 class="topictitle1">Can I Invoke Different Backend Services by Publishing an API in Different Environments?</h1>
<div id="body1539658342364"><p id="apig-en-faq-181016019__en-us_topic_0135442566_p13200165711416">Yes, you can invoke different backend services by publishing an API in different environments while specifying environment variables and backend parameters.</p>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-faq-180919016.html">API Publishing</a></div>
</div>
</div>

View File

@ -0,0 +1,27 @@
<a name="apig-en-ug-180307001"></a><a name="apig-en-ug-180307001"></a>
<h1 class="topictitle1">Opening APIs</h1>
<div id="body1511090188350"></div>
<div>
<ul class="ullinks">
<li class="ulchildlink"><strong><a href="apig-en-ug-180307002.html">Process Flow</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-ug-180307003.html">Creating an API Group</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-ug-190419107.html">Binding a Domain Name</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="en-us_topic_0080101678.html">Creating an API</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-ug-190419108.html">Debugging an API</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-ug-180307004.html">(Optional) Creating an Environment</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-ug-180307005.html">Publishing an API</a></strong><br>
</li>
</ul>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-ug-0012.html">Getting Started</a></div>
</div>
</div>

View File

@ -0,0 +1,28 @@
<a name="apig-en-ug-180307002"></a><a name="apig-en-ug-180307002"></a>
<h1 class="topictitle1">Process Flow</h1>
<div id="body1508204232679"><p id="apig-en-ug-180307002__en-us_topic_0080101676_p8060118">The following figure shows the process of exposing an API.</p>
<p id="apig-en-ug-180307002__p18543548134311"><span><img id="apig-en-ug-180307002__image14730133294617" src="en-us_image_0000001182465263.png" title="Click to enlarge" class="imgResize"></span></p>
<ol id="apig-en-ug-180307002__en-us_topic_0080101676_ol134712352910"><li id="apig-en-ug-180307002__li035223651911">Creating a Gateway<p id="apig-en-ug-180307002__p147514598126"><a name="apig-en-ug-180307002__li035223651911"></a><a name="li035223651911"></a>Buy a dedicated gateway. For details, see <a href="apig-ug-191004.html">Buying a Dedicated Gateway</a>. </p>
<p id="apig-en-ug-180307002__p08351451237"></p>
</li><li id="apig-en-ug-180307002__en-us_topic_0080101676_li1934718315294"><a href="apig-en-ug-180307003.html">Creating an API Group</a><p id="apig-en-ug-180307002__en-us_topic_0080101676_p52731551293">An API group facilitates management of APIs used for the same service. Create an API group and then create APIs.</p>
</li><li id="apig-en-ug-180307002__en-us_topic_0080101676_li1239042116208"><a href="apig-ug-190419107.html">Binding a Domain Name</a><p id="apig-en-ug-180307002__en-us_topic_0080101676_p1939022115203">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.</p>
</li><li id="apig-en-ug-180307002__en-us_topic_0080101676_li034715392911"><a href="en-us_topic_0080101678.html">Creating an API</a><p id="apig-en-ug-180307002__en-us_topic_0080101676_p1396201052917">When creating an API, configure the frontend and backend request paths, parameters, and protocols.</p>
</li><li id="apig-en-ug-180307002__en-us_topic_0080101676_li1447643191811"><a href="apig-ug-190419108.html">Debugging an API</a><p id="apig-en-ug-180307002__en-us_topic_0080101676_p18728145518188">Debug the API to check whether it works normally.</p>
</li><li id="apig-en-ug-180307002__en-us_topic_0080101676_li23471332910"><a href="apig-en-ug-180307004.html">(Optional) Creating an Environment</a><p id="apig-en-ug-180307002__en-us_topic_0080101676_p10254142615218">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.</p>
</li><li id="apig-en-ug-180307002__en-us_topic_0080101676_li134733102913"><a href="apig-en-ug-180307005.html">Publishing an API</a><p id="apig-en-ug-180307002__en-us_topic_0080101676_p780511012155">Publish the API so that it can be called.</p>
</li></ol>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-ug-180307001.html">Opening APIs</a></div>
</div>
</div>
<script language="JavaScript">
<!--
image_size('.imgResize');
var msg_imageMax = "view original image";
var msg_imageClose = "close";
//--></script>

View File

@ -0,0 +1,32 @@
<a name="apig-en-ug-180307003"></a><a name="apig-en-ug-180307003"></a>
<h1 class="topictitle1">Creating an API Group</h1>
<div id="body1508204232679"><ol id="apig-en-ug-180307003__en-us_topic_0080101677_en-us_topic_0089184725_en-us_topic_0080101677_ol43115541812"><li id="apig-en-ug-180307003__li174331760019"><span>Log in to the APIG console.</span></li><li id="apig-en-ug-180307003__li275441511522"><span>Access the <a href="apig-ug-191004.html">dedicated gateway you purchased</a>.</span></li><li id="apig-en-ug-180307003__en-us_topic_0080101677_en-us_topic_0089184725_en-us_topic_0080101677_li1311354012"><span>In the navigation pane, choose <strong id="apig-en-ug-180307003__b6308167183616">API Publishing</strong> &gt; <strong id="apig-en-ug-180307003__b231617163612">API Groups</strong>.</span></li><li id="apig-en-ug-180307003__en-us_topic_0080101677_en-us_topic_0089184725_en-us_topic_0080101677_li3311165411110"><span>Click <strong id="apig-en-ug-180307003__b1145915146433">Create API Group</strong> and configure group information.</span><p><div class="p" id="apig-en-ug-180307003__p116093312475">
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="apig-en-ug-180307003__table895845134614" frame="border" border="1" rules="all"><caption><b>Table 1 </b>API group information</caption><thead align="left"><tr id="apig-en-ug-180307003__row17941745204619"><th align="left" class="cellrowborder" valign="top" width="31.03%" id="mcps1.3.1.4.2.1.1.2.3.1.1"><p id="apig-en-ug-180307003__p6941545144618">Parameter</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="68.97%" id="mcps1.3.1.4.2.1.1.2.3.1.2"><p id="apig-en-ug-180307003__p6941045154620">Description</p>
</th>
</tr>
</thead>
<tbody><tr id="apig-en-ug-180307003__row1895194520463"><td class="cellrowborder" valign="top" width="31.03%" headers="mcps1.3.1.4.2.1.1.2.3.1.1 "><p id="apig-en-ug-180307003__p894164517462">Name</p>
</td>
<td class="cellrowborder" valign="top" width="68.97%" headers="mcps1.3.1.4.2.1.1.2.3.1.2 "><p id="apig-en-ug-180307003__p9951745114620">API group name. It is recommended that you enter a name based on naming rules to facilitate search.</p>
</td>
</tr>
<tr id="apig-en-ug-180307003__row995194524614"><td class="cellrowborder" valign="top" width="31.03%" headers="mcps1.3.1.4.2.1.1.2.3.1.1 "><p id="apig-en-ug-180307003__p1695645104618">Description</p>
</td>
<td class="cellrowborder" valign="top" width="68.97%" headers="mcps1.3.1.4.2.1.1.2.3.1.2 "><p id="apig-en-ug-180307003__p1795845134612">Description of the API group.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</p></li><li id="apig-en-ug-180307003__en-us_topic_0080101677_en-us_topic_0089184725_en-us_topic_0080101677_li33111754410"><span>Click <strong id="apig-en-ug-180307003__b757334163917">OK</strong>. The system automatically allocates a subdomain name to the API group. APIs in the group can be debugged using the domain name.</span></li></ol>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-ug-180307001.html">Opening APIs</a></div>
</div>
</div>

View File

@ -0,0 +1,32 @@
<a name="apig-en-ug-180307004"></a><a name="apig-en-ug-180307004"></a>
<h1 class="topictitle1">(Optional) Creating an Environment</h1>
<div id="body1508204796733"><ol id="apig-en-ug-180307004__en-us_topic_0080102731_en-us_topic_0114941621_en-us_topic_0080102731_ol43115541812"><li id="apig-en-ug-180307004__en-us_topic_0080102731_en-us_topic_0114941621_en-us_topic_0080102731_li1311354012"><span>In the navigation pane, choose <strong id="apig-en-ug-180307004__en-us_topic_0080102731_en-us_topic_0114941621_b7342115452819">API Publishing</strong> &gt; <strong id="apig-en-ug-180307004__en-us_topic_0080102731_en-us_topic_0114941621_b10342165412284">Environments</strong>.</span></li><li id="apig-en-ug-180307004__en-us_topic_0080102731_en-us_topic_0114941621_en-us_topic_0080102731_li3311165411110"><span>Click <strong id="apig-en-ug-180307004__b2073643054314">Create Environment</strong> and set the environment information.</span><p><div class="p" id="apig-en-ug-180307004__p19953134310379">
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="apig-en-ug-180307004__table1286551813717" frame="border" border="1" rules="all"><caption><b>Table 1 </b>Environment information</caption><thead align="left"><tr id="apig-en-ug-180307004__row786401863715"><th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.1.2.2.1.1.2.3.1.1"><p id="apig-en-ug-180307004__p19864518193717">Parameter</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="80%" id="mcps1.3.1.2.2.1.1.2.3.1.2"><p id="apig-en-ug-180307004__p15864201818370">Description</p>
</th>
</tr>
</thead>
<tbody><tr id="apig-en-ug-180307004__row1086431823713"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.1.2.2.1.1.2.3.1.1 "><p id="apig-en-ug-180307004__p118641718133718">Name</p>
</td>
<td class="cellrowborder" valign="top" width="80%" headers="mcps1.3.1.2.2.1.1.2.3.1.2 "><p id="apig-en-ug-180307004__p138641189377">Environment name. It is recommended that you enter a name based on naming rules to facilitate search.</p>
</td>
</tr>
<tr id="apig-en-ug-180307004__row68652184371"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.1.2.2.1.1.2.3.1.1 "><p id="apig-en-ug-180307004__p1865161843712">Description</p>
</td>
<td class="cellrowborder" valign="top" width="80%" headers="mcps1.3.1.2.2.1.1.2.3.1.2 "><p id="apig-en-ug-180307004__p686571813372">Description of the environment.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</p></li><li id="apig-en-ug-180307004__en-us_topic_0080102731_en-us_topic_0114941621_en-us_topic_0080102731_li27031236164915"><span>Click <strong id="apig-en-ug-180307004__en-us_topic_0080102731_en-us_topic_0114941621_b842352706184714">OK</strong>.</span></li></ol>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-ug-180307001.html">Opening APIs</a></div>
</div>
</div>

View File

@ -0,0 +1,12 @@
<a name="apig-en-ug-180307005"></a><a name="apig-en-ug-180307005"></a>
<h1 class="topictitle1">Publishing an API</h1>
<div id="body1511439357859"><ol id="apig-en-ug-180307005__en-us_topic_0085245354_en-us_topic_0080103325_en-us_topic_0085245354_ol43115541812"><li id="apig-en-ug-180307005__en-us_topic_0085245354_en-us_topic_0080103325_en-us_topic_0085245354_li1311354012"><span>In the navigation pane, choose <strong id="apig-en-ug-180307005__b188749327465">API Publishing</strong> &gt; <strong id="apig-en-ug-180307005__b14884173217463">APIs</strong>.</span></li><li id="apig-en-ug-180307005__en-us_topic_0085245354_en-us_topic_0080103325_en-us_topic_0085245354_li63871220171114"><span>Locate the API created in <a href="en-us_topic_0080101678.html">Creating an API</a>, and click <strong id="apig-en-ug-180307005__b23716184712">Publish</strong>.</span></li><li id="apig-en-ug-180307005__en-us_topic_0085245354_en-us_topic_0080103325_en-us_topic_0085245354_li17854113512"><span>Select the environment where the API will be published.</span><p><p id="apig-en-ug-180307005__p13845331174012"></p>
</p></li><li id="apig-en-ug-180307005__en-us_topic_0085245354_en-us_topic_0080103325_en-us_topic_0085245354_li38613145118"><span>Click <strong id="apig-en-ug-180307005__b84978388293">Publish</strong>.</span></li></ol>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-ug-180307001.html">Opening APIs</a></div>
</div>
</div>

View File

@ -0,0 +1,21 @@
<a name="apig-en-ug-180307007"></a><a name="apig-en-ug-180307007"></a>
<h1 class="topictitle1">Calling APIs</h1>
<div id="body1511404114797"></div>
<div>
<ul class="ullinks">
<li class="ulchildlink"><strong><a href="apig-en-ug-180307008.html">Process Flow</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-ug-180307010.html">Creating an App and Getting Authorized</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-ug-180307009.html">Adding an AppCode for Simple Authentication</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-ug-180307011.html">Calling an API</a></strong><br>
</li>
</ul>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-ug-0012.html">Getting Started</a></div>
</div>
</div>

View File

@ -0,0 +1,18 @@
<a name="apig-en-ug-180307008"></a><a name="apig-en-ug-180307008"></a>
<h1 class="topictitle1">Process Flow</h1>
<div id="body1511404114797"><p id="apig-en-ug-180307008__en-us_topic_0085149604_p21911839154311">The following figure shows the process of calling an API.</p>
<p id="apig-en-ug-180307008__p298135814519"><span><img id="apig-en-ug-180307008__image2794141704" src="en-us_image_0000001142638662.png"></span></p>
<p id="apig-en-ug-180307008__p181111515304"></p>
<ol id="apig-en-ug-180307008__en-us_topic_0085149604_ol26845418413"><li id="apig-en-ug-180307008__en-us_topic_0085149604_li1934718315294">Obtaining an API<p id="apig-en-ug-180307008__p870144816278"><a name="apig-en-ug-180307008__en-us_topic_0085149604_li1934718315294"></a><a name="en-us_topic_0085149604_li1934718315294"></a>Obtain an API and its documentation from an API provider.</p>
</li><li id="apig-en-ug-180307008__en-us_topic_0085149604_li034715392911"><a href="apig-en-ug-180307010.html">Creating an App and Getting Authorized</a><p id="apig-en-ug-180307008__p026518814305">APIs that use app authentication can only be called using apps bound to them.</p>
</li><li id="apig-en-ug-180307008__li10481112215013"><a href="apig-en-ug-180307009.html">Adding an AppCode for Simple Authentication</a><p id="apig-en-ug-180307008__p12605544153420">APIG only verifies the AppCode during simple authentication.</p>
</li><li id="apig-en-ug-180307008__en-us_topic_0085149604_li186871442042"><a href="apig-en-ug-180307011.html">Calling the API</a><p id="apig-en-ug-180307008__p1987765311304">Use an API test tool to call the API with app authentication credentials.</p>
</li></ol>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-ug-180307007.html">Calling APIs</a></div>
</div>
</div>

View File

@ -0,0 +1,12 @@
<a name="apig-en-ug-180307009"></a><a name="apig-en-ug-180307009"></a>
<h1 class="topictitle1">Adding an AppCode for Simple Authentication</h1>
<div id="body1511404114797"><ol id="apig-en-ug-180307009__ol5288720202717"><li id="apig-en-ug-180307009__li12288172082714"><span>In the app list, click the app created in <a href="apig-en-ug-180307010.html">Creating an App and Getting Authorized</a> to go to the app details page.</span></li><li id="apig-en-ug-180307009__li1720682113280"><span>Click the <strong id="apig-en-ug-180307009__b2911325662">AppCodes</strong> tab.</span></li><li id="apig-en-ug-180307009__li854814547286"><span>Click <strong id="apig-en-ug-180307009__b67227211371">Add AppCode</strong>.</span></li><li id="apig-en-ug-180307009__li1293513496290"><span>Select <strong id="apig-en-ug-180307009__b4584541787">Automatically generated</strong>.</span><p><p id="apig-en-ug-180307009__p4928142545616"></p>
</p></li><li id="apig-en-ug-180307009__li1431525193011"><span>Click <strong id="apig-en-ug-180307009__b35811661587">OK</strong>.</span></li></ol>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-ug-180307007.html">Calling APIs</a></div>
</div>
</div>

View File

@ -0,0 +1,35 @@
<a name="apig-en-ug-180307010"></a><a name="apig-en-ug-180307010"></a>
<h1 class="topictitle1">Creating an App and Getting Authorized</h1>
<div id="body1511404114797"><div class="section" id="apig-en-ug-180307010__section101812113415"><h4 class="sectiontitle">Creating an App</h4><ol id="apig-en-ug-180307010__en-us_topic_0085149606_en-us_topic_0115925970_en-us_topic_0085149606_ol43115541812"><li id="apig-en-ug-180307010__en-us_topic_0085149606_en-us_topic_0115925970_en-us_topic_0085149606_li1311354012"><span>In the navigation pane, choose <strong id="apig-en-ug-180307010__b27031933195717">API Calling</strong> &gt; <strong id="apig-en-ug-180307010__b67158333570">Apps</strong>.</span></li><li id="apig-en-ug-180307010__en-us_topic_0085149606_en-us_topic_0115925970_en-us_topic_0085149606_li3311165411110"><span>Click <strong id="apig-en-ug-180307010__b104181339115710">Create App</strong> and set basic app information.</span><p>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="apig-en-ug-180307010__table84025541401" frame="border" border="1" rules="all"><caption><b>Table 1 </b>App information</caption><thead align="left"><tr id="apig-en-ug-180307010__row16401554124015"><th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.1.2.2.2.1.2.3.1.1"><p id="apig-en-ug-180307010__p4401135414014">Parameter</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="80%" id="mcps1.3.1.2.2.2.1.2.3.1.2"><p id="apig-en-ug-180307010__p1540120546409">Description</p>
</th>
</tr>
</thead>
<tbody><tr id="apig-en-ug-180307010__row64012054164018"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.1.2.2.2.1.2.3.1.1 "><p id="apig-en-ug-180307010__p1340125484014">Name</p>
</td>
<td class="cellrowborder" valign="top" width="80%" headers="mcps1.3.1.2.2.2.1.2.3.1.2 "><p id="apig-en-ug-180307010__p14011654204012">App name. It is recommended that you enter a name based on naming rules to facilitate search.</p>
</td>
</tr>
<tr id="apig-en-ug-180307010__row5401854124012"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.1.2.2.2.1.2.3.1.1 "><p id="apig-en-ug-180307010__p440114548408">Description</p>
</td>
<td class="cellrowborder" valign="top" width="80%" headers="mcps1.3.1.2.2.2.1.2.3.1.2 "><p id="apig-en-ug-180307010__p1640165484017">Description of the app.</p>
</td>
</tr>
</tbody>
</table>
</div>
</p></li><li id="apig-en-ug-180307010__en-us_topic_0085149606_en-us_topic_0115925970_en-us_topic_0085149606_li82808566572"><span>Click <strong id="apig-en-ug-180307010__en-us_topic_0085149606_en-us_topic_0115925970_b84235270692711">OK</strong>.</span></li></ol>
</div>
<div class="section" id="apig-en-ug-180307010__en-us_topic_0085149606_en-us_topic_0115925970_section3685125783812"><h4 class="sectiontitle">Binding an App to an API</h4><ol id="apig-en-ug-180307010__en-us_topic_0085149606_en-us_topic_0115925970_en-us_topic_0085149606_ol19155171132916"><li id="apig-en-ug-180307010__li1058610301665"><span>In the <strong id="apig-en-ug-180307010__b5673142195818">Operation</strong> column of the created app, click <strong id="apig-en-ug-180307010__b116731221165814">Bind to API</strong>, and then click <strong id="apig-en-ug-180307010__b8673102114584">Select API</strong>.</span></li><li id="apig-en-ug-180307010__en-us_topic_0085149606_en-us_topic_0115925970_en-us_topic_0085149606_li81561011192910"><span>At the top of the API list, click <strong id="apig-en-ug-180307010__b19985951125816">Select API</strong>.</span></li><li id="apig-en-ug-180307010__en-us_topic_0085149606_en-us_topic_0115925970_en-us_topic_0085149606_li6105152922315"><span>Select the environment, API group, and API created in <a href="apig-en-ug-180307001.html">Opening APIs</a>, and click <strong id="apig-en-ug-180307010__b125493237591">OK</strong>.</span><p><p id="apig-en-ug-180307010__p9976103194612"></p>
</p></li></ol>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-ug-180307007.html">Calling APIs</a></div>
</div>
</div>

View File

@ -0,0 +1,22 @@
<a name="apig-en-ug-180307011"></a><a name="apig-en-ug-180307011"></a>
<h1 class="topictitle1">Calling an API</h1>
<div id="body1508204796733"><p id="apig-en-ug-180307011__p983924561117">Use an API test tool to configure the API calling information.</p>
<ol id="apig-en-ug-180307011__ol204944615405"><li id="apig-en-ug-180307011__li13835113641320"><span>Obtain the API request information.</span><p><p id="apig-en-ug-180307011__p136491513488">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.</p>
</p></li><li id="apig-en-ug-180307011__li4393141012538"><span>Add the header parameter <strong id="apig-en-ug-180307011__b1686713326131">X-Apig-AppCode</strong> and set the parameter value to the <a href="apig-en-ug-180307009.html">generated AppCode</a>.</span></li><li id="apig-en-ug-180307011__li1720018219474"><span>Add the header parameter <strong id="apig-en-ug-180307011__b1530450151411">x-stage</strong> and set the parameter value to the <a href="apig-en-ug-180307004.html">running environment</a>. Skip this step if the API has been published in the RELEASE environment.</span></li><li id="apig-en-ug-180307011__li19653744488"><span>Click <strong id="apig-en-ug-180307011__b111510417161">Send</strong> to send a request.</span><p><p id="apig-en-ug-180307011__p13191182917174">If the API is called successfully, the message <strong id="apig-en-ug-180307011__b91131542141618">200 OK</strong> is displayed.</p>
<p id="apig-en-ug-180307011__p13637132614176"><span><img id="apig-en-ug-180307011__image013818215597" src="en-us_image_0000001188579631.png" title="Click to enlarge" class="imgResize"></span></p>
</p></li></ol>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-ug-180307007.html">Calling APIs</a></div>
</div>
</div>
<script language="JavaScript">
<!--
image_size('.imgResize');
var msg_imageMax = "view original image";
var msg_imageClose = "close";
//--></script>

View File

@ -0,0 +1,21 @@
<a name="apig-en-ug-180307014"></a><a name="apig-en-ug-180307014"></a>
<h1 class="topictitle1">API Group Management</h1>
<div id="body1511232545602"></div>
<div>
<ul class="ullinks">
<li class="ulchildlink"><strong><a href="apig-en-ug-180307015.html">Creating an API Group</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-ug-180327076.html">Binding a Domain Name</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-ug-180307018.html">Deleting an API Group</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-lgug-200226001.html">Adding a Gateway Response</a></strong><br>
</li>
</ul>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-ug-0008.html">API Opening</a></div>
</div>
</div>

View File

@ -0,0 +1,41 @@
<a name="apig-en-ug-180307015"></a><a name="apig-en-ug-180307015"></a>
<h1 class="topictitle1">Creating an API Group</h1>
<div id="body8662426"><div class="section" id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_section1731012541118"><h4 class="sectiontitle">Scenario</h4><p id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_p1931010545114">Before creating an API, you must create an API group. An API group contains different APIs used for the same service.</p>
<div class="note" id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_note1442918804515"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="apig-en-ug-180307015__p11608521296">Each API can only belong to one API group.</p>
</div></div>
</div>
<div class="section" id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_section8731554122615"><h4 class="sectiontitle">Procedure</h4><ol id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_ol43115541812"><li id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_li1831115541819"><span>Log in to the management console.</span></li><li id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_li46871818394"><span>In the navigation pane, choose <strong id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_b12907459186">Dedicated Gateways</strong>. Then click <strong id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_b1191285913811">Access Console</strong> in the upper right corner of a dedicated gateway.</span></li><li id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_li1311354012"><span>In the navigation pane, choose <strong id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_b18158175701515">API Publishing</strong> &gt; <strong id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_b21581857161514">API Groups</strong>.</span></li><li id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_li3311165411110"><span>Click <strong id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_b19457133621120">Create API Group</strong>, and set the parameters described in <a href="#apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_table195413315428">Table 1</a>.</span><p>
<div class="tablenoborder"><a name="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_table195413315428"></a><a name="en-us_topic_0089184725_en-us_topic_0080101677_table195413315428"></a><table cellpadding="4" cellspacing="0" summary="" id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_table195413315428" frame="border" border="1" rules="all"><caption><b>Table 1 </b>Parameters for creating an API group</caption><thead align="left"><tr id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_row45523384220"><th align="left" class="cellrowborder" valign="top" width="31.03%" id="mcps1.3.2.2.4.2.1.2.3.1.1"><p id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_p65563314423">Parameter</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="68.97%" id="mcps1.3.2.2.4.2.1.2.3.1.2"><p id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_p356183311427">Description</p>
</th>
</tr>
</thead>
<tbody><tr id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_row1156183364219"><td class="cellrowborder" valign="top" width="31.03%" headers="mcps1.3.2.2.4.2.1.2.3.1.1 "><p id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_p105616333427">Name</p>
</td>
<td class="cellrowborder" valign="top" width="68.97%" headers="mcps1.3.2.2.4.2.1.2.3.1.2 "><p id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_p1656123374219">API group name.</p>
</td>
</tr>
<tr id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_row14879114316433"><td class="cellrowborder" valign="top" width="31.03%" headers="mcps1.3.2.2.4.2.1.2.3.1.1 "><p id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_p12880154304320">Description</p>
</td>
<td class="cellrowborder" valign="top" width="68.97%" headers="mcps1.3.2.2.4.2.1.2.3.1.2 "><p id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_p48801043134312">Description of the API group.</p>
</td>
</tr>
</tbody>
</table>
</div>
</p></li><li id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_li33111754410"><span>Click <strong id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_b842352706164226">OK</strong>.</span><p><div class="p" id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_p15877110102719">After the API group is created, it is displayed in the API group list.<div class="note" id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_note244319751817"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><ul id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_ul188601320593"><li id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_li12860113125918">The system automatically allocates a subdomain name to the API group for internal testing. The subdomain name can be accessed 1000 times a day.</li><li id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_li6179142271711">A default API group is automatically generated for each dedicated gateway. APIs in the default group can be called using the IP address of the VPC where the dedicated gateway is deployed.</li><li id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_li2085720711593">To make your APIs available for users to access, bind independent domain names to the API group to which the APIs belong.</li></ul>
</div></div>
</div>
</p></li></ol>
</div>
<div class="section" id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_section12967127112416"><h4 class="sectiontitle">Follow-Up Operations</h4><p id="apig-en-ug-180307015__en-us_topic_0089184725_en-us_topic_0080101677_p108340533244">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 <a href="apig-en-ug-180327076.html">Binding a Domain Name</a>.</p>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-ug-180307014.html">API Group Management</a></div>
</div>
</div>

View File

@ -0,0 +1,19 @@
<a name="apig-en-ug-180307018"></a><a name="apig-en-ug-180307018"></a>
<h1 class="topictitle1">Deleting an API Group</h1>
<div id="body1511232545602"><div class="section" id="apig-en-ug-180307018__en-us_topic_0084753156_section1731012541118"><h4 class="sectiontitle">Scenario</h4><p id="apig-en-ug-180307018__en-us_topic_0084753156_p11880932707">You can delete an API group if you do not require it.</p>
<div class="note" id="apig-en-ug-180307018__en-us_topic_0084753156_note6930194614619"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="apig-en-ug-180307018__en-us_topic_0084753156_p693064674614">API groups that contain APIs cannot be deleted.</p>
</div></div>
</div>
<div class="section" id="apig-en-ug-180307018__en-us_topic_0084753156_section83110548119"><h4 class="sectiontitle">Prerequisites</h4><p id="apig-en-ug-180307018__en-us_topic_0084753156_p884519147315">You have created an API group.</p>
</div>
<div class="section" id="apig-en-ug-180307018__en-us_topic_0084753156_section8731554122615"><h4 class="sectiontitle">Procedure</h4><ol id="apig-en-ug-180307018__en-us_topic_0084753156_ol43115541812"><li id="apig-en-ug-180307018__en-us_topic_0084753156_li1831115541819"><span>Log in to the management console.</span></li><li id="apig-en-ug-180307018__en-us_topic_0084753156_li46871818394"><span>In the navigation pane, choose <strong id="apig-en-ug-180307018__en-us_topic_0084753156_b105334901317">Dedicated Gateways</strong>. Then click <strong id="apig-en-ug-180307018__en-us_topic_0084753156_b95331491133">Access Console</strong> in the upper right corner of a dedicated gateway.</span></li><li id="apig-en-ug-180307018__en-us_topic_0084753156_li1311354012"><span>In the navigation pane, choose <strong id="apig-en-ug-180307018__en-us_topic_0084753156_b842352706163622">API Publishing</strong> &gt; <strong id="apig-en-ug-180307018__en-us_topic_0084753156_b842352706163624">API Groups</strong>.</span></li><li id="apig-en-ug-180307018__en-us_topic_0084753156_li459345519326"><span>Delete an API group. You can use one of the following methods:</span><p><ul id="apig-en-ug-180307018__en-us_topic_0084753156_ul659118555322"><li id="apig-en-ug-180307018__en-us_topic_0084753156_li174241428361">In the <strong id="apig-en-ug-180307018__en-us_topic_0084753156_b101246912351">Operation</strong> column of the target API group, choose <strong id="apig-en-ug-180307018__en-us_topic_0084753156_b84235270620348">More</strong> &gt; <strong id="apig-en-ug-180307018__en-us_topic_0084753156_b842352706203416">Delete</strong>.</li><li id="apig-en-ug-180307018__en-us_topic_0084753156_li259118551323">Click the name of the target API group, and click <strong id="apig-en-ug-180307018__en-us_topic_0084753156_b15891617163919">Delete Group</strong> in the upper right corner of the displayed API group details page.</li></ul>
</p></li><li id="apig-en-ug-180307018__en-us_topic_0084753156_li1353910714109"><span>Enter <strong id="apig-en-ug-180307018__en-us_topic_0084753156_b842352706224818">DELETE</strong> and click <strong id="apig-en-ug-180307018__en-us_topic_0084753156_b1777164193212">Yes</strong>.</span></li></ol>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-ug-180307014.html">API Group Management</a></div>
</div>
</div>

View File

@ -0,0 +1,31 @@
<a name="apig-en-ug-180307019"></a><a name="apig-en-ug-180307019"></a>
<h1 class="topictitle1">API Management</h1>
<div id="body1508204232679"></div>
<div>
<ul class="ullinks">
<li class="ulchildlink"><strong><a href="apig-en-ug-180307020.html">Creating an API</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-ug-180621094.html">CORS</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-ug-180307025.html">Debugging an API</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-ug-180307021.html">Authorizing Apps to Call an API</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-ug-180307023.html">Publishing an API</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-ug-180307024.html">Taking an API Offline</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-ug-180307027.html">Deleting an API</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-ug-181025104.html">Importing APIs</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-ug-181204105.html">Exporting APIs</a></strong><br>
</li>
</ul>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-ug-0008.html">API Opening</a></div>
</div>
</div>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,27 @@
<a name="apig-en-ug-180307021"></a><a name="apig-en-ug-180307021"></a>
<h1 class="topictitle1">Authorizing Apps to Call an API</h1>
<div id="body1508204933192"><div class="section" id="apig-en-ug-180307021__en-us_topic_0080103324_section25971517509"><h4 class="sectiontitle">Scenario</h4><p id="apig-en-ug-180307021__en-us_topic_0080103324_p11880932707">APIs using app authentication can only be called by apps that have been authorized to call them.</p>
<div class="note" id="apig-en-ug-180307021__en-us_topic_0080103324_note11815124814279"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><ul id="apig-en-ug-180307021__en-us_topic_0080103324_ul1761088123512"><li id="apig-en-ug-180307021__en-us_topic_0080103324_li061010815355">You can only authorize apps to call published APIs.</li><li id="apig-en-ug-180307021__en-us_topic_0080103324_li1623411138356">You can authorize apps only to call APIs that use app authentication.</li></ul>
</div></div>
</div>
<div class="section" id="apig-en-ug-180307021__en-us_topic_0080103324_section1678010231609"><h4 class="sectiontitle">Prerequisites</h4><ul id="apig-en-ug-180307021__en-us_topic_0080103324_ul05200562619"><li id="apig-en-ug-180307021__en-us_topic_0080103324_li1452016502620">You have created an API group and API.</li><li id="apig-en-ug-180307021__en-us_topic_0080103324_li181441893265">(Optional) You have created an environment.</li><li id="apig-en-ug-180307021__en-us_topic_0080103324_li1016681712616">You have created an app.</li></ul>
</div>
<div class="section" id="apig-en-ug-180307021__en-us_topic_0080103324_section1942423018019"><h4 class="sectiontitle">Procedure</h4><ol id="apig-en-ug-180307021__en-us_topic_0080103324_ol43115541812"><li id="apig-en-ug-180307021__en-us_topic_0080103324_li1831115541819"><span>Log in to the management console.</span></li><li id="apig-en-ug-180307021__en-us_topic_0080103324_li46871818394"><span>In the navigation pane, choose <strong id="apig-en-ug-180307021__en-us_topic_0080103324_b152429112146">Dedicated Gateways</strong>. Then click <strong id="apig-en-ug-180307021__en-us_topic_0080103324_b824717110147">Access Console</strong> in the upper right corner of a dedicated gateway.</span></li><li id="apig-en-ug-180307021__en-us_topic_0080103324_li1311354012"><span>In the navigation pane, choose <strong id="apig-en-ug-180307021__en-us_topic_0080103324_b1467497151414">API Publishing</strong> &gt; <strong id="apig-en-ug-180307021__en-us_topic_0080103324_b6675877144">APIs</strong>.</span></li><li id="apig-en-ug-180307021__en-us_topic_0080103324_li1511540191420"><span>Authorize apps to call an API. You can use one of the following methods:</span><p><ul id="apig-en-ug-180307021__en-us_topic_0080103324_ul1469018231514"><li id="apig-en-ug-180307021__en-us_topic_0080103324_li369052111515">In the <strong id="apig-en-ug-180307021__en-us_topic_0080103324_b095361911919">Operation</strong> column of the target API, choose <strong id="apig-en-ug-180307021__b325318487477">More</strong> &gt; <strong id="apig-en-ug-180307021__b202531748124718">Authorize App</strong>, and then click <strong id="apig-en-ug-180307021__en-us_topic_0080103324_b84235270614570">Select App</strong>.</li><li id="apig-en-ug-180307021__en-us_topic_0080103324_li13337122132413">Select the target API, click <strong id="apig-en-ug-180307021__en-us_topic_0080103324_b82811561118">Authorize App</strong> over the API list, and then click <strong id="apig-en-ug-180307021__en-us_topic_0080103324_b6445143815423">Select App</strong>.</li><li id="apig-en-ug-180307021__en-us_topic_0080103324_li116005921713">Authorize apps through the API details page.<ol type="a" id="apig-en-ug-180307021__en-us_topic_0080103324_ol65943915173"><li id="apig-en-ug-180307021__en-us_topic_0080103324_li659419914173">Click the name of the target API.</li><li id="apig-en-ug-180307021__en-us_topic_0080103324_li15977343111720">Click the <strong id="apig-en-ug-180307021__en-us_topic_0080103324_b84235270622571">Authorization</strong> tab.</li><li id="apig-en-ug-180307021__en-us_topic_0080103324_li17177316131814">Click <strong id="apig-en-ug-180307021__en-us_topic_0080103324_b886018421421">Select App</strong>.</li></ol>
</li></ul>
<div class="note" id="apig-en-ug-180307021__en-us_topic_0080103324_note1840105117482"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="apig-en-ug-180307021__en-us_topic_0080103324_p1840216517482">To authorize an app to access multiple APIs, select the APIs, and click <strong id="apig-en-ug-180307021__en-us_topic_0080103324_b1533613011125">Authorize App</strong>. Click <strong id="apig-en-ug-180307021__b960115897">Select App</strong>, select the app you wish to authorize, and click <strong id="apig-en-ug-180307021__en-us_topic_0080103324_b319124016127">OK</strong>. You can grant access to a maximum of 1000 APIs at a time.</p>
</div></div>
</p></li><li id="apig-en-ug-180307021__en-us_topic_0080103324_li7717183225"><span>Select an environment, search for and select desired apps, and click <strong id="apig-en-ug-180307021__en-us_topic_0080103324_b1777734110289">OK</strong>.</span><p><p id="apig-en-ug-180307021__p027111286492"></p>
</p></li><li id="apig-en-ug-180307021__en-us_topic_0080103324_li183446711235"><span>After the authorization is complete, view the authorized apps on the <strong id="apig-en-ug-180307021__en-us_topic_0080103324_b84235270623137">Authorization</strong> tab page or the <strong id="apig-en-ug-180307021__en-us_topic_0080103324_b0747487596">Authorize App</strong> page.</span><p><div class="note" id="apig-en-ug-180307021__en-us_topic_0080103324_note1503158716"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="apig-en-ug-180307021__en-us_topic_0080103324_p3504128719">If an app does not need to call the API, click <strong id="apig-en-ug-180307021__en-us_topic_0080103324_b75785532340">Cancel Authorization</strong> in the row containing the app to unbind it.</p>
</div></div>
</p></li></ol>
</div>
<div class="section" id="apig-en-ug-180307021__en-us_topic_0080103324_en-us_topic_0080101678_section1679143819506"><h4 class="sectiontitle">Follow-Up Operations</h4><p id="apig-en-ug-180307021__en-us_topic_0080103324_en-us_topic_0080101678_p1983541082215">After you authorize an app to call an API, the API can be called using SDKs of different programming languages.</p>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-ug-180307019.html">API Management</a></div>
</div>
</div>

View File

@ -0,0 +1,34 @@
<a name="apig-en-ug-180307023"></a><a name="apig-en-ug-180307023"></a>
<h1 class="topictitle1">Publishing an API</h1>
<div id="body1508204933192"><div class="section" id="apig-en-ug-180307023__en-us_topic_0080103325_section25971517509"><h4 class="sectiontitle">Scenario</h4><p id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_p11880932707">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.</p>
<div class="note" id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_note28910167376"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><ul id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_ul14972161332"><li id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_li114973161331">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.</li><li id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_li18987161913315">A maximum of 10 publication records of an API are retained in an environment.</li></ul>
</div></div>
</div>
<div class="section" id="apig-en-ug-180307023__en-us_topic_0080103325_section1678010231609"><h4 class="sectiontitle">Prerequisites</h4><ul id="apig-en-ug-180307023__en-us_topic_0080103325_ul87051218123414"><li id="apig-en-ug-180307023__en-us_topic_0080103325_li670571814342">You have created an API group and API.</li><li id="apig-en-ug-180307023__en-us_topic_0080103325_li18733152143419">You have created an environment.</li></ul>
</div>
<div class="section" id="apig-en-ug-180307023__en-us_topic_0080103325_section1929412566340"><h4 class="sectiontitle">Publishing an API</h4><ol id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_ol43115541812"><li id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_li1831115541819"><span>Log in to the management console.</span></li><li id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_li46871818394"><span>In the navigation pane, choose <strong id="apig-en-ug-180307023__en-us_topic_0080103325_b2086748368">Dedicated Gateways</strong>. Then click <strong id="apig-en-ug-180307023__en-us_topic_0080103325_b9921481365">Access Console</strong> in the upper right corner of a dedicated gateway.</span></li><li id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_li1311354012"><span>In the navigation pane, choose <strong id="apig-en-ug-180307023__en-us_topic_0080103325_b16569515201117">API Publishing</strong> &gt; <strong id="apig-en-ug-180307023__en-us_topic_0080103325_b5570151531117">APIs</strong>.</span></li><li id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_li63871220171114"><span>Publish an API. You can use one of the following methods:</span><p><ul id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_ul1826526191113"><li id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_li13826182610112">Click <strong id="apig-en-ug-180307023__en-us_topic_0080103325_b176257432388">Publish</strong> in the row containing the API you want to publish.</li><li id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_li1232225181218">Click the name of the target API, and click <strong id="apig-en-ug-180307023__en-us_topic_0080103325_b446216143415">Publish</strong> in the upper right corner of the displayed API details page.</li></ul>
<div class="note" id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_note203219495211"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_p1321249323">To publish multiple APIs, select the APIs, and click <strong id="apig-en-ug-180307023__en-us_topic_0080103325_b7551327163720">Publish</strong>. You can publish a maximum of 1000 APIs at a time.</p>
</div></div>
</p></li><li id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_li17854113512"><span>Select the environment where the API will be published, and enter a description.</span><p><div class="note" id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_note358717343352"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><ul id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_ul1228470354"><li id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_li1122144723518">If the API has already been published in the environment, publishing it again will overwrite its definition in that environment.</li><li id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_li1665175012353">If there is no environment that meets your requirements, create a new one.</li></ul>
</div></div>
</p></li><li id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_li38613145118"><span>Click <strong id="apig-en-ug-180307023__en-us_topic_0080103325_b84235270619227">Publish</strong>.</span></li></ol>
</div>
<div class="section" id="apig-en-ug-180307023__en-us_topic_0080103325_section10650536947"><h4 class="sectiontitle">Viewing Publication History</h4><ol id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_ol17705946133311"><li id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_li77058465333"><span>Log in to the management console.</span></li><li id="apig-en-ug-180307023__en-us_topic_0080103325_li1281514123517"><span>In the navigation pane, choose <strong id="apig-en-ug-180307023__en-us_topic_0080103325_b528433232120">Dedicated Gateways</strong>. Then click <strong id="apig-en-ug-180307023__en-us_topic_0080103325_b3284193272111">Access Console</strong> in the upper right corner of a dedicated gateway.</span></li><li id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_li15705146183311"><span>In the navigation pane, choose <strong id="apig-en-ug-180307023__b802270962">API Publishing</strong> &gt; <strong id="apig-en-ug-180307023__b860689650">APIs</strong>.</span></li><li id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_li09551541185519"><span>Click the name of the target API.</span></li><li id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_li16744158021"><span>Click the <strong id="apig-en-ug-180307023__en-us_topic_0080103325_b1162114120173">Publication History</strong> tab.</span><p><p id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_p9249797314">The publication history of the API is displayed.</p>
</p></li><li id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_li101591281585"><span>Click <strong id="apig-en-ug-180307023__en-us_topic_0080103325_b08631564263">View Details</strong> in the <strong id="apig-en-ug-180307023__en-us_topic_0080103325_b971861182711">Operation</strong> column of a version.</span><p><p id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_p20857133013812">The <strong id="apig-en-ug-180307023__en-us_topic_0080103325_b578011315179">View Details</strong> dialog box displays the basic information, frontend and backend request information, input and constant parameters, parameter mappings, and example responses of the API.</p>
</p></li><li id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_li1768115181785"><span>To roll back the API to a historical version, click <strong id="apig-en-ug-180307023__en-us_topic_0080103325_b889210005518">Switch Version</strong> in the row containing the target version, and click <strong id="apig-en-ug-180307023__en-us_topic_0080103325_b158931306557">Yes</strong>.</span><p><p id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_p1422124112209">If "current version" is displayed next to the target version, the rollback was successful.</p>
<p id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_p1827323742018">When the API is called, configuration of the current version is used instead of the previously saved configuration.</p>
<p id="apig-en-ug-180307023__en-us_topic_0080103325_en-us_topic_0085245354_p1273737102014">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.</p>
</p></li></ol>
</div>
<div class="section" id="apig-en-ug-180307023__section528963134814"><h4 class="sectiontitle">FAQs About API Publishing</h4><p id="apig-en-ug-180307023__p12664345174817"><a href="apig-en-faq-180307002.html">Do I Need to Publish an API Again After Modification?</a></p>
<p id="apig-en-ug-180307023__p466534554810"><a href="apig-en-faq-180606011.html">Why Can't APIs Published in a Non-RELEASE Environment Be Accessed?</a></p>
<p id="apig-en-ug-180307023__p76651645184812"><a href="apig-en-faq-181016019.html">Can I Invoke Different Backend Services by Publishing an API in Different Environments?</a></p>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-ug-180307019.html">API Management</a></div>
</div>
</div>

View File

@ -0,0 +1,23 @@
<a name="apig-en-ug-180307024"></a><a name="apig-en-ug-180307024"></a>
<h1 class="topictitle1">Taking an API Offline</h1>
<div id="body1508204933192"><div class="section" id="apig-en-ug-180307024__en-us_topic_0080103326_section25971517509"><h4 class="sectiontitle">Scenario</h4><p id="apig-en-ug-180307024__en-us_topic_0080103326_p07131489448">You can remove APIs that you do not need from the environments where the APIs have been published.</p>
<div class="notice" id="apig-en-ug-180307024__en-us_topic_0080103326_note6958181413522"><span class="noticetitle"><img src="public_sys-resources/notice_3.0-en-us.png"> </span><div class="noticebody"><p id="apig-en-ug-180307024__en-us_topic_0080103326_p1495918149521">This operation will cause the APIs to be inaccessible in the environments. Ensure that you have notified users before this operation.</p>
</div></div>
</div>
<div class="section" id="apig-en-ug-180307024__en-us_topic_0080103326_section1678010231609"><h4 class="sectiontitle">Prerequisites</h4><ul id="apig-en-ug-180307024__en-us_topic_0080103326_ul12481614111010"><li id="apig-en-ug-180307024__en-us_topic_0080103326_li424820143109">You have created an API group and API.</li><li id="apig-en-ug-180307024__en-us_topic_0080103326_li2795181721013">You have published the API.</li></ul>
</div>
<div class="section" id="apig-en-ug-180307024__en-us_topic_0080103326_section1929412566340"><h4 class="sectiontitle">Procedure</h4><ol id="apig-en-ug-180307024__en-us_topic_0080103326_ol43115541812"><li id="apig-en-ug-180307024__en-us_topic_0080103326_li1831115541819"><span>Log in to the management console.</span></li><li id="apig-en-ug-180307024__en-us_topic_0080103326_li46871818394"><span>In the navigation pane, choose <strong id="apig-en-ug-180307024__en-us_topic_0080103326_b157391158145">Dedicated Gateways</strong>. Then click <strong id="apig-en-ug-180307024__en-us_topic_0080103326_b9744615101413">Access Console</strong> in the upper right corner of a dedicated gateway.</span></li><li id="apig-en-ug-180307024__en-us_topic_0080103326_li1311354012"><span>In the navigation pane, choose <strong id="apig-en-ug-180307024__en-us_topic_0080103326_b838810411216">API Publishing</strong> &gt; <strong id="apig-en-ug-180307024__en-us_topic_0080103326_b17389194102117">APIs</strong>.</span></li><li id="apig-en-ug-180307024__en-us_topic_0080103326_li356732210163"><span>Take the API offline. You can use one of the following methods:</span><p><ul id="apig-en-ug-180307024__en-us_topic_0080103326_ul178785273163"><li id="apig-en-ug-180307024__en-us_topic_0080103326_li1787812731613">In the <strong id="apig-en-ug-180307024__en-us_topic_0080103326_b105719911614">Operation</strong> column of the target API, choose <strong id="apig-en-ug-180307024__en-us_topic_0080103326_b8184101216168">More</strong> &gt; <strong id="apig-en-ug-180307024__en-us_topic_0080103326_b48825145167">Take Offline</strong>.</li><li id="apig-en-ug-180307024__en-us_topic_0080103326_li8197745189">Click the name of the target API, and click <strong id="apig-en-ug-180307024__en-us_topic_0080103326_b4426337182117">Take Offline</strong> in the upper right corner of the API details page.</li></ul>
<div class="note" id="apig-en-ug-180307024__en-us_topic_0080103326_note203219495211"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="apig-en-ug-180307024__en-us_topic_0080103326_p1321249323">To take multiple APIs offline, select the APIs, and click <strong id="apig-en-ug-180307024__en-us_topic_0080103326_b11827571612">Take Offline</strong>. You can take a maximum of 1000 APIs offline at a time.</p>
</div></div>
</p></li><li id="apig-en-ug-180307024__en-us_topic_0080103326_li7717183225"><span>Select the environment from which you want to take the API offline, and click <strong id="apig-en-ug-180307024__en-us_topic_0080103326_b569614151235">Yes</strong>.</span></li></ol>
</div>
<div class="section" id="apig-en-ug-180307024__en-us_topic_0080103326_en-us_topic_0080101678_section1679143819506"><h4 class="sectiontitle">Follow-Up Operations</h4><p id="apig-en-ug-180307024__en-us_topic_0080103326_en-us_topic_0080101678_p1983541082215">After taking an API offline, delete it based on the instructions provided in <a href="apig-en-ug-180307027.html">Deleting an API</a>.</p>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-ug-180307019.html">API Management</a></div>
</div>
</div>

View File

@ -0,0 +1,78 @@
<a name="apig-en-ug-180307025"></a><a name="apig-en-ug-180307025"></a>
<h1 class="topictitle1">Debugging an API</h1>
<div id="body1508204933192"><div class="section" id="apig-en-ug-180307025__en-us_topic_0080103327_section25971517509"><h4 class="sectiontitle">Scenario</h4><p id="apig-en-ug-180307025__en-us_topic_0080103327_p07131489448">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.</p>
<div class="note" id="apig-en-ug-180307025__en-us_topic_0080103327_note23002203557"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><ul id="apig-en-ug-180307025__en-us_topic_0080103327_ul5858542101919"><li id="apig-en-ug-180307025__en-us_topic_0080103327_li385834213192">APIs with backend request paths containing variables cannot be debugged.</li><li id="apig-en-ug-180307025__en-us_topic_0080103327_li13126104791917">If an API has been bound with a request throttling policy, the policy will not work during debugging of the API.</li></ul>
</div></div>
</div>
<div class="section" id="apig-en-ug-180307025__en-us_topic_0080103327_section1678010231609"><h4 class="sectiontitle">Prerequisites</h4><ul id="apig-en-ug-180307025__en-us_topic_0080103327_ul2044424731616"><li id="apig-en-ug-180307025__en-us_topic_0080103327_li184441474160">You have created an API group and API.</li><li id="apig-en-ug-180307025__en-us_topic_0080103327_li1241645041617">You have set up the backend service of the API.</li></ul>
</div>
<div class="section" id="apig-en-ug-180307025__en-us_topic_0080103327_section1929412566340"><h4 class="sectiontitle">Procedure</h4><ol id="apig-en-ug-180307025__en-us_topic_0080103327_ol43115541812"><li id="apig-en-ug-180307025__en-us_topic_0080103327_li1831115541819"><span>Log in to the management console.</span></li><li id="apig-en-ug-180307025__en-us_topic_0080103327_li46871818394"><span>In the navigation pane, choose <strong id="apig-en-ug-180307025__en-us_topic_0080103327_b220831716135">Dedicated Gateways</strong>. Then click <strong id="apig-en-ug-180307025__en-us_topic_0080103327_b132131174137">Access Console</strong> in the upper right corner of a dedicated gateway.</span></li><li id="apig-en-ug-180307025__en-us_topic_0080103327_li1311354012"><span>In the navigation pane, choose <strong id="apig-en-ug-180307025__en-us_topic_0080103327_b2791172583518">API Publishing</strong> &gt; <strong id="apig-en-ug-180307025__en-us_topic_0080103327_b1879212593511">APIs</strong>.</span></li><li id="apig-en-ug-180307025__en-us_topic_0080103327_li18948456198"><span>Debug an API. You can use one of the following methods:</span><p><ul id="apig-en-ug-180307025__en-us_topic_0080103327_ul113115213206"><li id="apig-en-ug-180307025__en-us_topic_0080103327_li913192152019">In the <strong id="apig-en-ug-180307025__en-us_topic_0080103327_b128662396351">Operation</strong> column of the API you want to debug, choose <strong id="apig-en-ug-180307025__en-us_topic_0080103327_b686853913514">More</strong> &gt; <strong id="apig-en-ug-180307025__en-us_topic_0080103327_b786814396355">Debug</strong>.</li><li id="apig-en-ug-180307025__en-us_topic_0080103327_li6282954201">Click the name of the target API, and click <strong id="apig-en-ug-180307025__en-us_topic_0080103327_b154862314367">Debug</strong> in the upper right corner of the displayed API details page.</li></ul>
<p id="apig-en-ug-180307025__en-us_topic_0080103327_p136418634517">On the left side, set the API request parameters listed in <a href="#apig-en-ug-180307025__en-us_topic_0080103327_table1699044810457">Table 1</a>. On the right side, view the API request and response information after you click <strong id="apig-en-ug-180307025__en-us_topic_0080103327_b9304142324713">Send Request</strong>.</p>
<div class="tablenoborder"><a name="apig-en-ug-180307025__en-us_topic_0080103327_table1699044810457"></a><a name="en-us_topic_0080103327_table1699044810457"></a><table cellpadding="4" cellspacing="0" summary="" id="apig-en-ug-180307025__en-us_topic_0080103327_table1699044810457" frame="border" border="1" rules="all"><caption><b>Table 1 </b>Parameters for debugging an API</caption><thead align="left"><tr id="apig-en-ug-180307025__en-us_topic_0080103327_row1699084815458"><th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.3.2.4.2.3.2.3.1.1"><p id="apig-en-ug-180307025__en-us_topic_0080103327_p15990164813454">Parameter</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="80%" id="mcps1.3.3.2.4.2.3.2.3.1.2"><p id="apig-en-ug-180307025__en-us_topic_0080103327_p99907481453">Description</p>
</th>
</tr>
</thead>
<tbody><tr id="apig-en-ug-180307025__en-us_topic_0080103327_row2431345016"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.2.4.2.3.2.3.1.1 "><p id="apig-en-ug-180307025__en-us_topic_0080103327_p8441941705">Protocol</p>
</td>
<td class="cellrowborder" valign="top" width="80%" headers="mcps1.3.3.2.4.2.3.2.3.1.2 "><p id="apig-en-ug-180307025__en-us_topic_0080103327_p444164702">This parameter can be modified only if you set <strong id="apig-en-ug-180307025__en-us_topic_0080103327_b1928211171611">Protocol</strong> to <strong id="apig-en-ug-180307025__en-us_topic_0080103327_b1451143160">HTTP&amp;HTTPS</strong> for the API.</p>
</td>
</tr>
<tr id="apig-en-ug-180307025__en-us_topic_0080103327_row699013480453"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.2.4.2.3.2.3.1.1 "><p id="apig-en-ug-180307025__en-us_topic_0080103327_p599054811454">Method</p>
</td>
<td class="cellrowborder" valign="top" width="80%" headers="mcps1.3.3.2.4.2.3.2.3.1.2 "><p id="apig-en-ug-180307025__en-us_topic_0080103327_p1990104816453">This parameter can be modified only if you set <strong id="apig-en-ug-180307025__en-us_topic_0080103327_b20803756134716">Method</strong> to <strong id="apig-en-ug-180307025__en-us_topic_0080103327_b68046567474">ANY</strong> for the API.</p>
</td>
</tr>
<tr id="apig-en-ug-180307025__en-us_topic_0080103327_row1299115489454"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.2.4.2.3.2.3.1.1 "><p id="apig-en-ug-180307025__en-us_topic_0080103327_p699184812454">Suffix</p>
</td>
<td class="cellrowborder" valign="top" width="80%" headers="mcps1.3.3.2.4.2.3.2.3.1.2 "><p id="apig-en-ug-180307025__en-us_topic_0080103327_p49911348204512">You can define a path only if you have set <strong id="apig-en-ug-180307025__en-us_topic_0080103327_b58231232183211">Matching</strong> to <strong id="apig-en-ug-180307025__en-us_topic_0080103327_b98281432193216">Prefix match</strong> for the API.</p>
</td>
</tr>
<tr id="apig-en-ug-180307025__en-us_topic_0080103327_row131752048134718"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.2.4.2.3.2.3.1.1 "><p id="apig-en-ug-180307025__en-us_topic_0080103327_p1717694813470">Path</p>
</td>
<td class="cellrowborder" valign="top" width="80%" headers="mcps1.3.3.2.4.2.3.2.3.1.2 "><p id="apig-en-ug-180307025__en-us_topic_0080103327_p517614482472">Request path of the API.</p>
</td>
</tr>
<tr id="apig-en-ug-180307025__en-us_topic_0080103327_row159914483458"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.2.4.2.3.2.3.1.1 "><p id="apig-en-ug-180307025__en-us_topic_0080103327_p59911248174520">Path Parameters</p>
</td>
<td class="cellrowborder" valign="top" width="80%" headers="mcps1.3.3.2.4.2.3.2.3.1.2 "><p id="apig-en-ug-180307025__en-us_topic_0080103327_p139911748164513">This parameter can be modified only if you have defined path parameters (such as <strong id="apig-en-ug-180307025__en-us_topic_0080103327_b177385433317">{test}</strong>) for the API.</p>
</td>
</tr>
<tr id="apig-en-ug-180307025__row16117311027"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.2.4.2.3.2.3.1.1 "><p id="apig-en-ug-180307025__p1843537926">Query Strings</p>
</td>
<td class="cellrowborder" valign="top" width="80%" headers="mcps1.3.3.2.4.2.3.2.3.1.2 "><p id="apig-en-ug-180307025__p44352720212">Query string parameters and values.</p>
</td>
</tr>
<tr id="apig-en-ug-180307025__en-us_topic_0080103327_row10991184818452"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.2.4.2.3.2.3.1.1 "><p id="apig-en-ug-180307025__en-us_topic_0080103327_p1899144854513">Headers</p>
</td>
<td class="cellrowborder" valign="top" width="80%" headers="mcps1.3.3.2.4.2.3.2.3.1.2 "><p id="apig-en-ug-180307025__en-us_topic_0080103327_p1991134811453">HTTP headers and values.</p>
</td>
</tr>
<tr id="apig-en-ug-180307025__en-us_topic_0080103327_row12855103617473"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.2.4.2.3.2.3.1.1 "><p id="apig-en-ug-180307025__en-us_topic_0080103327_p1685653611470">Body</p>
</td>
<td class="cellrowborder" valign="top" width="80%" headers="mcps1.3.3.2.4.2.3.2.3.1.2 "><p id="apig-en-ug-180307025__en-us_topic_0080103327_p3856163615475">This parameter can be modified only if you set <strong id="apig-en-ug-180307025__en-us_topic_0080103327_b84235270623417">Method</strong> to <strong id="apig-en-ug-180307025__en-us_topic_0080103327_b842352706234112">PATCH</strong>, <strong id="apig-en-ug-180307025__en-us_topic_0080103327_b842352706234114">POST</strong>, or <strong id="apig-en-ug-180307025__en-us_topic_0080103327_b842352706234121">PUT</strong> for the API.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="note" id="apig-en-ug-180307025__en-us_topic_0080103327_note1677817323711"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="apig-en-ug-180307025__en-us_topic_0080103327_p137797322710">The fields displayed on the debugging page vary according to the request type.</p>
</div></div>
</p></li><li id="apig-en-ug-180307025__en-us_topic_0080103327_li7717183225"><span>After setting request parameters, click <strong id="apig-en-ug-180307025__en-us_topic_0080103327_b842352706234138">Send Request</strong>.</span><p><p id="apig-en-ug-180307025__en-us_topic_0080103327_p1642060121916">The box on the lower right displays the response of the API request.</p>
<ul id="apig-en-ug-180307025__en-us_topic_0080103327_ul148810596143"><li id="apig-en-ug-180307025__en-us_topic_0080103327_li448925911416">If the debugging is successful, the HTTP status code <strong id="apig-en-ug-180307025__en-us_topic_0080103327_b8706191910589">200</strong> and response details are displayed.</li><li id="apig-en-ug-180307025__en-us_topic_0080103327_li181071722283">If the request fails to be sent, an HTTP status code <strong id="apig-en-ug-180307025__b423163711497">4xx</strong> or <strong id="apig-en-ug-180307025__b02392377495">5xx</strong> is displayed. For details, see <a href="apig-en-ug-180530090.html">Error Codes</a>.</li></ul>
</p></li><li id="apig-en-ug-180307025__en-us_topic_0080103327_li33111754410"><span>You can send more requests with different parameters and values to verify the API.</span><p><div class="note" id="apig-en-ug-180307025__en-us_topic_0080103327_note123751731121418"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="apig-en-ug-180307025__en-us_topic_0080103327_p737510315143">To modify the API configurations, click <strong id="apig-en-ug-180307025__en-us_topic_0080103327_b206052266269">Edit</strong> in the upper right corner, and modify the parameters on the <strong id="apig-en-ug-180307025__en-us_topic_0080103327_b15232028277">Edit API</strong> page.</p>
</div></div>
</p></li></ol>
</div>
<div class="section" id="apig-en-ug-180307025__en-us_topic_0080103327_section122151752810"><h4 class="sectiontitle">Follow-Up Operations</h4><p id="apig-en-ug-180307025__en-us_topic_0080103327_p535413202289">After the API is successfully debugged, <a href="apig-en-ug-180307023.html">publish</a> 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 <a href="apig-en-ug-180307029.html">Creating a Request Throttling Policy</a>), access control policies (<a href="apig-en-ug-180712097.html">Creating an Access Control Policy</a>), and signature keys (<a href="apig-en-ug-180307041.html">Creating and Using a Signature Key</a>) for the API.</p>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-ug-180307019.html">API Management</a></div>
</div>
</div>

View File

@ -0,0 +1,19 @@
<a name="apig-en-ug-180307027"></a><a name="apig-en-ug-180307027"></a>
<h1 class="topictitle1">Deleting an API</h1>
<div id="body1508204933192"><div class="section" id="apig-en-ug-180307027__en-us_topic_0080103328_section25971517509"><h4 class="sectiontitle">Scenario</h4><p id="apig-en-ug-180307027__en-us_topic_0080103328_p07131489448">You can delete published APIs you no longer require.</p>
<div class="notice" id="apig-en-ug-180307027__en-us_topic_0080103328_note6958181413522"><span class="noticetitle"><img src="public_sys-resources/notice_3.0-en-us.png"> </span><div class="noticebody"><ul id="apig-en-ug-180307027__en-us_topic_0080103328_ul16572203654717"><li id="apig-en-ug-180307027__en-us_topic_0080103328_li25721036194717">Deleted APIs cannot be accessed by apps or users who were using the APIs, so make sure you notify users before the deletion.</li><li id="apig-en-ug-180307027__en-us_topic_0080103328_li31611456154717">Published APIs must be first taken offline and then deleted.</li></ul>
</div></div>
</div>
<div class="section" id="apig-en-ug-180307027__en-us_topic_0080103328_section1929412566340"><h4 class="sectiontitle">Procedure</h4><ol id="apig-en-ug-180307027__en-us_topic_0080103328_ol43115541812"><li id="apig-en-ug-180307027__en-us_topic_0080103328_li1831115541819"><span>Log in to the management console.</span></li><li id="apig-en-ug-180307027__en-us_topic_0080103328_li46871818394"><span>In the navigation pane, choose <strong id="apig-en-ug-180307027__en-us_topic_0080103328_b17256161941413">Dedicated Gateways</strong>. Then click <strong id="apig-en-ug-180307027__en-us_topic_0080103328_b22611190142">Access Console</strong> in the upper right corner of a dedicated gateway.</span></li><li id="apig-en-ug-180307027__en-us_topic_0080103328_li1311354012"><span>In the navigation pane, choose <strong id="apig-en-ug-180307027__en-us_topic_0080103328_b1355314221162">API Publishing</strong> &gt; <strong id="apig-en-ug-180307027__en-us_topic_0080103328_b1055532217610">APIs</strong>.</span></li><li id="apig-en-ug-180307027__en-us_topic_0080103328_li360735292510"><span>Delete the API. You can use one of the following methods:</span><p><ul id="apig-en-ug-180307027__en-us_topic_0080103328_ul112882422618"><li id="apig-en-ug-180307027__en-us_topic_0080103328_li3288844268">In the <strong id="apig-en-ug-180307027__en-us_topic_0080103328_b493012817719">Operation</strong> column of the API you want to delete, choose <strong id="apig-en-ug-180307027__en-us_topic_0080103328_b49305819714">More</strong> &gt; <strong id="apig-en-ug-180307027__en-us_topic_0080103328_b189311781711">Delete</strong>.</li><li id="apig-en-ug-180307027__en-us_topic_0080103328_li19935149112611">Click the name of the target API, and click <strong id="apig-en-ug-180307027__en-us_topic_0080103328_b19709037578">Delete</strong> in the upper right corner of the displayed API details page.</li></ul>
<div class="note" id="apig-en-ug-180307027__en-us_topic_0080103328_note203219495211"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="apig-en-ug-180307027__en-us_topic_0080103328_p1321249323">To delete multiple APIs, select the APIs, and click <strong id="apig-en-ug-180307027__en-us_topic_0080103328_b7688155115169">Delete</strong>. You can delete a maximum of 1000 APIs at a time.</p>
</div></div>
</p></li><li id="apig-en-ug-180307027__en-us_topic_0080103328_li7717183225"><span>Enter <strong id="apig-en-ug-180307027__en-us_topic_0080103328_b842352706235220">DELETE</strong> and click <strong id="apig-en-ug-180307027__en-us_topic_0080103328_b842352706235228">Yes</strong>.</span></li></ol>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-ug-180307019.html">API Management</a></div>
</div>
</div>

View File

@ -0,0 +1,21 @@
<a name="apig-en-ug-180307028"></a><a name="apig-en-ug-180307028"></a>
<h1 class="topictitle1">Request Throttling</h1>
<div id="body1508204232679"></div>
<div>
<ul class="ullinks">
<li class="ulchildlink"><strong><a href="apig-en-ug-180307029.html">Creating a Request Throttling Policy</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-ug-180307032.html">Deleting a Request Throttling Policy</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-ug-180307033.html">Adding an Excluded App or Tenant</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-ug-180307035.html">Removing an Excluded App or Tenant</a></strong><br>
</li>
</ul>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-ug-0008.html">API Opening</a></div>
</div>
</div>

View File

@ -0,0 +1,86 @@
<a name="apig-en-ug-180307029"></a><a name="apig-en-ug-180307029"></a>
<h1 class="topictitle1">Creating a Request Throttling Policy</h1>
<div id="body1508204933192"><div class="section" id="apig-en-ug-180307029__en-us_topic_0080103329_section1731012541118"><h4 class="sectiontitle">Scenario</h4><p id="apig-en-ug-180307029__en-us_topic_0080103329_p16503240969">Request throttling controls the number of times an API can be called within a time period to protect backend services.</p>
<p id="apig-en-ug-180307029__en-us_topic_0080103329_p1931010545114">To provide stable, uninterrupted services, you can create request throttling policies to control the number of calls made to your APIs.</p>
<p id="apig-en-ug-180307029__en-us_topic_0080103329_p1153112510615">Request throttling policies take effect for an API only if they have been bound to the API.</p>
<div class="note" id="apig-en-ug-180307029__en-us_topic_0080103329_note103131018162414"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><ul id="apig-en-ug-180307029__en-us_topic_0080103329_ul288519471885"><li id="apig-en-ug-180307029__en-us_topic_0080103329_li75974505816">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.</li><li id="apig-en-ug-180307029__en-us_topic_0080103329_li2651165918713">For a dedicated gateway, the limit is the value of <strong id="apig-en-ug-180307029__b14176613302">ratelimit_api_limits</strong> you have configured on the <strong id="apig-en-ug-180307029__b102431142133015">Configuration Parameters</strong> page.</li></ul>
</div></div>
</div>
<div class="section" id="apig-en-ug-180307029__en-us_topic_0080103329_section83110548119"><h4 class="sectiontitle">Prerequisites</h4><p id="apig-en-ug-180307029__en-us_topic_0080103329_p179881835991">You have <a href="apig-en-ug-180307023.html">published the API</a> to which you want to bind a request throttling policy.</p>
</div>
<div class="section" id="apig-en-ug-180307029__en-us_topic_0080103329_section8731554122615"><h4 class="sectiontitle">Creating a Request Throttling Policy</h4><ol id="apig-en-ug-180307029__en-us_topic_0080103329_ol43115541812"><li id="apig-en-ug-180307029__en-us_topic_0080103329_li1831115541819"><span>Log in to the management console.</span></li><li id="apig-en-ug-180307029__en-us_topic_0080103329_li46871818394"><span>In the navigation pane, choose <strong id="apig-en-ug-180307029__en-us_topic_0080103329_b81951343171418">Dedicated Gateways</strong>. Then click <strong id="apig-en-ug-180307029__en-us_topic_0080103329_b13200204316144">Access Console</strong> in the upper right corner of a dedicated gateway.</span></li><li id="apig-en-ug-180307029__en-us_topic_0080103329_li1311354012"><span>In the navigation pane, choose <strong id="apig-en-ug-180307029__en-us_topic_0080103329_b511820344123">API Publishing</strong> &gt; <strong id="apig-en-ug-180307029__en-us_topic_0080103329_b121201342126">Request Throttling</strong>.</span></li><li id="apig-en-ug-180307029__en-us_topic_0080103329_li3311165411110"><span>Click <strong id="apig-en-ug-180307029__en-us_topic_0080103329_b842352706235557">Create Request Throttling Policy</strong>, and set the parameters listed in <a href="#apig-en-ug-180307029__table1496031175119">Table 1</a>.</span><p><p id="apig-en-ug-180307029__p113459463513"></p>
<div class="p" id="apig-en-ug-180307029__p9335174610517">
<div class="tablenoborder"><a name="apig-en-ug-180307029__table1496031175119"></a><a name="table1496031175119"></a><table cellpadding="4" cellspacing="0" summary="" id="apig-en-ug-180307029__table1496031175119" frame="border" border="1" rules="all"><caption><b>Table 1 </b>Parameters for creating a request throttling policy</caption><thead align="left"><tr id="apig-en-ug-180307029__row59587116512"><th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.3.2.4.2.2.1.2.3.1.1"><p id="apig-en-ug-180307029__p395811175111">Parameter</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="80%" id="mcps1.3.3.2.4.2.2.1.2.3.1.2"><p id="apig-en-ug-180307029__p1095881185112">Description</p>
</th>
</tr>
</thead>
<tbody><tr id="apig-en-ug-180307029__row495831117515"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.2.4.2.2.1.2.3.1.1 "><p id="apig-en-ug-180307029__p11958411115112">Name</p>
</td>
<td class="cellrowborder" valign="top" width="80%" headers="mcps1.3.3.2.4.2.2.1.2.3.1.2 "><p id="apig-en-ug-180307029__p0958111113512">Request throttling policy name.</p>
</td>
</tr>
<tr id="apig-en-ug-180307029__row695851165120"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.2.4.2.2.1.2.3.1.1 "><p id="apig-en-ug-180307029__p139581911155114">Type</p>
</td>
<td class="cellrowborder" valign="top" width="80%" headers="mcps1.3.3.2.4.2.2.1.2.3.1.2 "><p id="apig-en-ug-180307029__p9958151125114">API-based or API-shared request throttling.</p>
<ul id="apig-en-ug-180307029__ul2095891110515"><li id="apig-en-ug-180307029__li2958191195114"><strong id="apig-en-ug-180307029__en-us_topic_0080103329_b2745233132315">API-based</strong>: Request throttling is based on every API to which the policy is bound.</li><li id="apig-en-ug-180307029__li89589114519"><strong id="apig-en-ug-180307029__en-us_topic_0080103329_b585784482511">API-shared</strong>: Request throttling is based on all APIs as a whole to which the policy is bound.</li></ul>
</td>
</tr>
<tr id="apig-en-ug-180307029__row12959161125112"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.2.4.2.2.1.2.3.1.1 "><p id="apig-en-ug-180307029__p12958111145119">Period</p>
</td>
<td class="cellrowborder" valign="top" width="80%" headers="mcps1.3.3.2.4.2.2.1.2.3.1.2 "><p id="apig-en-ug-180307029__p1295811175112">For how long you want to limit the number of API calls. This parameter can be used together with the following parameters:</p>
<ul id="apig-en-ug-180307029__ul9959211115115"><li id="apig-en-ug-180307029__li8959111125111"><strong id="apig-en-ug-180307029__en-us_topic_0080103329_b58995364297">Max. API Requests</strong>: Limit the maximum number of times an API can be called within a specific period.</li><li id="apig-en-ug-180307029__li1895921125114"><strong id="apig-en-ug-180307029__en-us_topic_0080103329_b71821945123110">Max. User Requests</strong>: Limit the maximum number of times an API can be called by a user within a specific period.</li><li id="apig-en-ug-180307029__li695951111515"><strong id="apig-en-ug-180307029__en-us_topic_0080103329_b1797991223416">Max. App Requests</strong>: Limit the maximum number of times an API can be called by an app within a specific period.</li><li id="apig-en-ug-180307029__li195941113519"><strong id="apig-en-ug-180307029__en-us_topic_0080103329_b20167313153517">Max. IP Address Requests</strong>: Limit the maximum number of times an API can be called by an IP address within a specific period.</li></ul>
</td>
</tr>
<tr id="apig-en-ug-180307029__row18959181113511"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.2.4.2.2.1.2.3.1.1 "><p id="apig-en-ug-180307029__p12959161195116">Max. API Requests</p>
</td>
<td class="cellrowborder" valign="top" width="80%" headers="mcps1.3.3.2.4.2.2.1.2.3.1.2 "><p id="apig-en-ug-180307029__p189598114519">The maximum number of times each bound API can be called within the specified period.</p>
<p id="apig-en-ug-180307029__p18959611175114">This parameter must be used together with <strong id="apig-en-ug-180307029__en-us_topic_0080103329_b155138322187">Period</strong>.</p>
</td>
</tr>
<tr id="apig-en-ug-180307029__row1695951105120"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.2.4.2.2.1.2.3.1.1 "><p id="apig-en-ug-180307029__p895951155114">Max. User Requests</p>
</td>
<td class="cellrowborder" valign="top" width="80%" headers="mcps1.3.3.2.4.2.2.1.2.3.1.2 "><p id="apig-en-ug-180307029__p695918111512">The maximum number of times each bound API can be called by a user within the specified period. <strong id="apig-en-ug-180307029__b1410614013307">This limit only applies to APIs that are accessed through app or IAM authentication.</strong></p>
<ul id="apig-en-ug-180307029__ul1095971112511"><li id="apig-en-ug-180307029__li995914118518">The value of this parameter cannot exceed that of <strong id="apig-en-ug-180307029__en-us_topic_0080103329_b57532596389">Max. API Requests</strong>.</li><li id="apig-en-ug-180307029__li295911118517">This parameter must be used together with <strong id="apig-en-ug-180307029__en-us_topic_0080103329_b87241300713">Period</strong>.</li><li id="apig-en-ug-180307029__li295961111519">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.</li></ul>
</td>
</tr>
<tr id="apig-en-ug-180307029__row59591511115118"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.2.4.2.2.1.2.3.1.1 "><p id="apig-en-ug-180307029__p995911115517">Max. App Requests</p>
</td>
<td class="cellrowborder" valign="top" width="80%" headers="mcps1.3.3.2.4.2.2.1.2.3.1.2 "><p id="apig-en-ug-180307029__p1795910114511">The maximum number of times each bound API can be called by an app within the specified period. <strong id="apig-en-ug-180307029__b109301181940">This limit only applies to APIs that are accessed through app authentication.</strong></p>
<ul id="apig-en-ug-180307029__ul16959711155116"><li id="apig-en-ug-180307029__li1195951116519">The value of this parameter cannot exceed that of <strong id="apig-en-ug-180307029__en-us_topic_0080103329_b1238010541478">Max. User Requests</strong>.</li><li id="apig-en-ug-180307029__li12959131115117">This parameter must be used together with <strong id="apig-en-ug-180307029__en-us_topic_0080103329_b21961704815">Period</strong>.</li></ul>
</td>
</tr>
<tr id="apig-en-ug-180307029__row199601113518"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.2.4.2.2.1.2.3.1.1 "><p id="apig-en-ug-180307029__p395918112519">Max. IP Address Requests</p>
</td>
<td class="cellrowborder" valign="top" width="80%" headers="mcps1.3.3.2.4.2.2.1.2.3.1.2 "><p id="apig-en-ug-180307029__p1959111185118">The maximum number of times each bound API can be called by an IP address within the specified period.</p>
<ul id="apig-en-ug-180307029__ul10960201195112"><li id="apig-en-ug-180307029__li1959711145118">The value of this parameter cannot exceed that of <strong id="apig-en-ug-180307029__en-us_topic_0080103329_b1172663917">Max. API Requests</strong>.</li><li id="apig-en-ug-180307029__li7960141119511">This parameter must be used together with <strong id="apig-en-ug-180307029__en-us_topic_0080103329_b20183114917818">Period</strong>.</li></ul>
</td>
</tr>
<tr id="apig-en-ug-180307029__row1296081195113"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.3.2.4.2.2.1.2.3.1.1 "><p id="apig-en-ug-180307029__p796091105113">Description</p>
</td>
<td class="cellrowborder" valign="top" width="80%" headers="mcps1.3.3.2.4.2.2.1.2.3.1.2 "><p id="apig-en-ug-180307029__p20960101165112">Description of the request throttling policy.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</p></li><li id="apig-en-ug-180307029__en-us_topic_0080103329_li33111754410"><span>Click <strong id="apig-en-ug-180307029__en-us_topic_0080103329_b84235270601052">OK</strong>.</span><p><p id="apig-en-ug-180307029__en-us_topic_0080103329_p29103151110">After the policy is created, it is displayed on the <strong id="apig-en-ug-180307029__en-us_topic_0080103329_b13344133112434">Request Throttling</strong> page. You can bind this policy to APIs to throttle API requests.</p>
</p></li></ol>
</div>
<div class="section" id="apig-en-ug-180307029__en-us_topic_0080103329_section1853216101881"><h4 class="sectiontitle">Binding a Request Throttling Policy to an API</h4><ol id="apig-en-ug-180307029__en-us_topic_0080103329_ol1912016431015"><li id="apig-en-ug-180307029__en-us_topic_0080103329_li1121120144610"><span>Go to the page for binding a request throttling policy to an API. You can use one of the following methods:</span><p><ul id="apig-en-ug-180307029__en-us_topic_0080103329_ul161611010467"><li id="apig-en-ug-180307029__en-us_topic_0080103329_li2161601467">In the <strong id="apig-en-ug-180307029__en-us_topic_0080103329_b9696172795111">Operation</strong> column of the request throttling policy to be bound, click <strong id="apig-en-ug-180307029__en-us_topic_0080103329_b1069717271516">Bind to API</strong>, and then click <strong id="apig-en-ug-180307029__en-us_topic_0080103329_b1269792705110">Select API</strong>.</li><li id="apig-en-ug-180307029__en-us_topic_0080103329_li3973105144618">Click the name of the target request throttling policy, and click <strong id="apig-en-ug-180307029__en-us_topic_0080103329_b1143813405481">Select API</strong> on the <strong id="apig-en-ug-180307029__en-us_topic_0080103329_b12439104010489">APIs</strong> tab page.</li></ul>
</p></li><li id="apig-en-ug-180307029__en-us_topic_0080103329_li129919201149"><span>Specify an API group, environment, and API name keyword to search for the desired API.</span></li><li id="apig-en-ug-180307029__en-us_topic_0080103329_li1918710448179"><span>Select the API and click <strong id="apig-en-ug-180307029__en-us_topic_0080103329_b219074924818">OK</strong>.</span><p><div class="note" id="apig-en-ug-180307029__en-us_topic_0080103329_note1337383012209"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="apig-en-ug-180307029__en-us_topic_0080103329_p3374173052010">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 <strong id="apig-en-ug-180307029__en-us_topic_0080103329_b1480434191811">Unbind</strong>. You can unbind a request throttling policy from a maximum of 1000 APIs at a time.</p>
</div></div>
</p></li></ol>
</div>
<div class="section" id="apig-en-ug-180307029__en-us_topic_0080103329_section186331115191812"><h4 class="sectiontitle">Follow-Up Operations</h4><p id="apig-en-ug-180307029__en-us_topic_0080103329_p1744353017465">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 <a href="apig-en-ug-180307033.html">Adding an Excluded App or Tenant</a>. 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.</p>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-ug-180307028.html">Request Throttling</a></div>
</div>
</div>

View File

@ -0,0 +1,19 @@
<a name="apig-en-ug-180307032"></a><a name="apig-en-ug-180307032"></a>
<h1 class="topictitle1">Deleting a Request Throttling Policy</h1>
<div id="body1508204933192"><div class="section" id="apig-en-ug-180307032__en-us_topic_0080103331_section1731012541118"><h4 class="sectiontitle">Scenario</h4><p id="apig-en-ug-180307032__en-us_topic_0080103331_p07131489448">You can delete request throttling policies you no longer require.</p>
</div>
<div class="section" id="apig-en-ug-180307032__en-us_topic_0080103331_section83110548119"><h4 class="sectiontitle">Prerequisites</h4><p id="apig-en-ug-180307032__en-us_topic_0080103331_p18977617113219">You have created a request throttling policy.</p>
</div>
<div class="section" id="apig-en-ug-180307032__en-us_topic_0080103331_section8731554122615"><h4 class="sectiontitle">Procedure</h4><ol id="apig-en-ug-180307032__en-us_topic_0080103331_ol43115541812"><li id="apig-en-ug-180307032__en-us_topic_0080103331_li1831115541819"><span>Log in to the management console.</span></li><li id="apig-en-ug-180307032__en-us_topic_0080103331_li46871818394"><span>In the navigation pane, choose <strong id="apig-en-ug-180307032__en-us_topic_0080103331_b1893218467141">Dedicated Gateways</strong>. Then click <strong id="apig-en-ug-180307032__en-us_topic_0080103331_b139431746201410">Access Console</strong> in the upper right corner of a dedicated gateway.</span></li><li id="apig-en-ug-180307032__en-us_topic_0080103331_li1311354012"><span>In the navigation pane, choose <strong id="apig-en-ug-180307032__en-us_topic_0080103331_b1192359194910">API Publishing</strong> &gt; <strong id="apig-en-ug-180307032__en-us_topic_0080103331_b11201165918492">Request Throttling</strong>.</span></li><li id="apig-en-ug-180307032__en-us_topic_0080103331_li13973124752817"><span>Delete a request throttling policy. You can use one of the following methods:</span><p><ul id="apig-en-ug-180307032__en-us_topic_0080103331_ul13770752202810"><li id="apig-en-ug-180307032__en-us_topic_0080103331_li117708528281">In the <strong id="apig-en-ug-180307032__en-us_topic_0080103331_b279893920543">Operation</strong> column of the request throttling policy you want to delete, click <strong id="apig-en-ug-180307032__en-us_topic_0080103331_b1877610463545">Delete</strong>.</li><li id="apig-en-ug-180307032__en-us_topic_0080103331_li62368716295">Click the name of the target request throttling policy, and click <strong id="apig-en-ug-180307032__en-us_topic_0080103331_b1271392835513">Delete</strong> in the upper right corner of the displayed request throttling policy details page.</li></ul>
<div class="note" id="apig-en-ug-180307032__en-us_topic_0080103331_note11236177112913"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><ul id="apig-en-ug-180307032__en-us_topic_0080103331_ul2430834175919"><li id="apig-en-ug-180307032__en-us_topic_0080103331_li18430234135913">If a request throttling policy has been bound to an API, unbind the policy and then delete it. To unbind a request throttling policy, go to the policy details page, click <strong id="apig-en-ug-180307032__en-us_topic_0080103331_b14873193505218">Unbind</strong> in the row that contains the API from which you want to unbind the policy, and click <strong id="apig-en-ug-180307032__en-us_topic_0080103331_b184579525313">Yes</strong>.</li><li id="apig-en-ug-180307032__en-us_topic_0080103331_li1640810387592">To delete multiple request throttling policies, select the policies, and click <strong id="apig-en-ug-180307032__en-us_topic_0080103331_b69011212019">Delete</strong>. You can delete a maximum of 1000 request throttling policies at a time.</li></ul>
</div></div>
</p></li><li id="apig-en-ug-180307032__en-us_topic_0080103331_li6105152922315"><span>Click <strong id="apig-en-ug-180307032__en-us_topic_0080103331_b970185242516">Yes</strong>.</span></li></ol>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-ug-180307028.html">Request Throttling</a></div>
</div>
</div>

View File

@ -0,0 +1,47 @@
<a name="apig-en-ug-180307033"></a><a name="apig-en-ug-180307033"></a>
<h1 class="topictitle1">Adding an Excluded App or Tenant</h1>
<div id="body1510880423374"><div class="section" id="apig-en-ug-180307033__en-us_topic_0084226147_section1731012541118"><h4 class="sectiontitle">Scenario</h4><p id="apig-en-ug-180307033__en-us_topic_0084226147_p1931010545114">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.</p>
</div>
<div class="section" id="apig-en-ug-180307033__en-us_topic_0084226147_section83110548119"><h4 class="sectiontitle">Prerequisites</h4><p id="apig-en-ug-180307033__en-us_topic_0084226147_p0443112415322">You have created an app or obtained an app ID of another account or an account ID.</p>
</div>
<div class="section" id="apig-en-ug-180307033__en-us_topic_0084226147_section8731554122615"><h4 class="sectiontitle">Adding an Excluded App</h4><ol id="apig-en-ug-180307033__en-us_topic_0084226147_ol43115541812"><li id="apig-en-ug-180307033__en-us_topic_0084226147_li1831115541819"><span>Log in to the management console.</span></li><li id="apig-en-ug-180307033__en-us_topic_0084226147_li46871818394"><span>In the navigation pane, choose <strong id="apig-en-ug-180307033__en-us_topic_0084226147_b1311315508149">Dedicated Gateways</strong>. Then click <strong id="apig-en-ug-180307033__en-us_topic_0084226147_b13114135001411">Access Console</strong> in the upper right corner of a dedicated gateway.</span></li><li id="apig-en-ug-180307033__en-us_topic_0084226147_li8591550101212"><span>In the navigation pane, choose <strong id="apig-en-ug-180307033__en-us_topic_0084226147_b7476204910531">API Publishing</strong> &gt; <strong id="apig-en-ug-180307033__en-us_topic_0084226147_b16477449125317">Request Throttling</strong>.</span></li><li id="apig-en-ug-180307033__en-us_topic_0084226147_li3311165411110"><span>Click the name of the target request throttling policy.</span></li><li id="apig-en-ug-180307033__en-us_topic_0084226147_li265941133116"><span>On the displayed request throttling policy details page, click the <strong id="apig-en-ug-180307033__en-us_topic_0084226147_b842352706112330">Excluded Apps</strong> tab.</span></li><li id="apig-en-ug-180307033__en-us_topic_0084226147_li6105152922315"><span>Click <strong id="apig-en-ug-180307033__en-us_topic_0084226147_b8423527060335">Select Excluded App</strong>.</span></li><li id="apig-en-ug-180307033__en-us_topic_0084226147_li73503122115"><span>Select an app to exclude. You can use one of the following methods:</span><p><ul id="apig-en-ug-180307033__en-us_topic_0084226147_ul12795121382418"><li id="apig-en-ug-180307033__en-us_topic_0084226147_li279551316249">To select an existing app, click <strong id="apig-en-ug-180307033__en-us_topic_0084226147_b519718513515">Existing</strong>, select an app, and enter a threshold.</li><li id="apig-en-ug-180307033__en-us_topic_0084226147_li12795111314240">To select an app of other tenants, click <strong id="apig-en-ug-180307033__en-us_topic_0084226147_b129440151856">Cross-tenant</strong>, and enter the app ID and a threshold.<div class="note" id="apig-en-ug-180307033__en-us_topic_0084226147_note10701243103416"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="apig-en-ug-180307033__p814204313263">Excluded app thresholds take precedence over the value of <strong id="apig-en-ug-180307033__b173844016238">Max. App Requests</strong>.</p>
<p id="apig-en-ug-180307033__p9142114313264">For example, a request throttling policy has been configured, with <strong id="apig-en-ug-180307033__b2095117333268">Max. API Requests</strong> being <strong id="apig-en-ug-180307033__b0951113342616">10</strong>, <strong id="apig-en-ug-180307033__b18952433102616">Max. App Requests</strong> being <strong id="apig-en-ug-180307033__b9952113313267">3</strong>, <strong id="apig-en-ug-180307033__b695217337265">Period</strong> being 1 minute, and two excluded apps (max. <strong id="apig-en-ug-180307033__b495353311264">2</strong> API requests for app A and max. <strong id="apig-en-ug-180307033__b79531133142610">4</strong> 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.</p>
</div></div>
</li></ul>
</p></li></ol>
</div>
<div class="section" id="apig-en-ug-180307033__en-us_topic_0084226147_section15217193362218"><h4 class="sectiontitle">Adding an Excluded Tenant</h4><ol id="apig-en-ug-180307033__en-us_topic_0084226147_ol46701453132217"><li id="apig-en-ug-180307033__en-us_topic_0084226147_li967185317226"><span>Log in to the management console.</span></li><li id="apig-en-ug-180307033__en-us_topic_0084226147_li1885641313313"><span>Hover the mouse pointer over the username, click the username, and choose <strong id="apig-en-ug-180307033__en-us_topic_0084226147_b15817928185418">My Credentials</strong> from the drop-down list.</span></li><li id="apig-en-ug-180307033__en-us_topic_0084226147_li785710139335"><a name="apig-en-ug-180307033__en-us_topic_0084226147_li785710139335"></a><a name="en-us_topic_0084226147_li785710139335"></a><span>On the <strong id="apig-en-ug-180307033__en-us_topic_0084226147_b1941461791520">My Credentials</strong> page, view the account ID and project ID.</span></li><li id="apig-en-ug-180307033__en-us_topic_0084226147_li88231831202118"><span>In the navigation pane, choose <strong id="apig-en-ug-180307033__en-us_topic_0084226147_b7595750201410">Dedicated Gateways</strong>. Then click <strong id="apig-en-ug-180307033__en-us_topic_0084226147_b75951150101415">Access Console</strong> in the upper right corner of a dedicated gateway.</span></li><li id="apig-en-ug-180307033__en-us_topic_0084226147_li1311354012"><span>In the navigation pane, choose <strong id="apig-en-ug-180307033__en-us_topic_0084226147_b3837144710541">API Publishing</strong> &gt; <strong id="apig-en-ug-180307033__en-us_topic_0084226147_b15838847175420">Request Throttling</strong>.</span></li><li id="apig-en-ug-180307033__en-us_topic_0084226147_li067116534222"><span>Click the name of the target request throttling policy.</span></li><li id="apig-en-ug-180307033__en-us_topic_0084226147_li146711653142216"><span>Click the <strong id="apig-en-ug-180307033__en-us_topic_0084226147_b1654315611519">Excluded Tenants</strong> tab.</span></li><li id="apig-en-ug-180307033__en-us_topic_0084226147_li767185312212"><span>Click <strong id="apig-en-ug-180307033__en-us_topic_0084226147_b2044181017156">Select Excluded Tenant</strong>.</span></li><li id="apig-en-ug-180307033__en-us_topic_0084226147_li106711653192212"><span>In the <strong id="apig-en-ug-180307033__en-us_topic_0084226147_b43881421515">Select Excluded Tenant</strong> dialog box, set the parameters listed in <a href="#apig-en-ug-180307033__en-us_topic_0084226147_table10544879441">Table 1</a>.</span><p>
<div class="tablenoborder"><a name="apig-en-ug-180307033__en-us_topic_0084226147_table10544879441"></a><a name="en-us_topic_0084226147_table10544879441"></a><table cellpadding="4" cellspacing="0" summary="" id="apig-en-ug-180307033__en-us_topic_0084226147_table10544879441" frame="border" border="1" rules="all"><caption><b>Table 1 </b>Excluded tenant configuration</caption><thead align="left"><tr id="apig-en-ug-180307033__en-us_topic_0084226147_row05460718446"><th align="left" class="cellrowborder" valign="top" width="20%" id="mcps1.3.4.2.9.2.1.2.3.1.1"><p id="apig-en-ug-180307033__en-us_topic_0084226147_p65563314423">Parameter</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="80%" id="mcps1.3.4.2.9.2.1.2.3.1.2"><p id="apig-en-ug-180307033__en-us_topic_0084226147_p356183311427">Description</p>
</th>
</tr>
</thead>
<tbody><tr id="apig-en-ug-180307033__en-us_topic_0084226147_row1554610717441"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.2.9.2.1.2.3.1.1 "><p id="apig-en-ug-180307033__en-us_topic_0084226147_p65468794410">Account ID</p>
</td>
<td class="cellrowborder" valign="top" width="80%" headers="mcps1.3.4.2.9.2.1.2.3.1.2 "><p id="apig-en-ug-180307033__en-us_topic_0084226147_p554618717447">Account ID or project ID obtained in <a href="#apig-en-ug-180307033__en-us_topic_0084226147_li785710139335">3</a>.</p>
<ul id="apig-en-ug-180307033__en-us_topic_0084226147_ul1968720915333"><li id="apig-en-ug-180307033__en-us_topic_0084226147_li1128918313369">Enter a project ID if you will bind or have bound this policy to an API that uses app authentication.</li><li id="apig-en-ug-180307033__en-us_topic_0084226147_li136876910334">Enter an account ID if you will bind or have bound this policy to an API that uses IAM authentication.</li></ul>
</td>
</tr>
<tr id="apig-en-ug-180307033__en-us_topic_0084226147_row754620754418"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.3.4.2.9.2.1.2.3.1.1 "><p id="apig-en-ug-180307033__en-us_topic_0084226147_p1654612714443">Threshold</p>
</td>
<td class="cellrowborder" valign="top" width="80%" headers="mcps1.3.4.2.9.2.1.2.3.1.2 "><p id="apig-en-ug-180307033__en-us_topic_0084226147_p195460710441">The maximum number of times an API can be called by the tenant within a specified period.</p>
<p id="apig-en-ug-180307033__en-us_topic_0084226147_p783241819334">The value of this parameter cannot exceed that of <strong id="apig-en-ug-180307033__en-us_topic_0084226147_b7695102461613">Max. API Requests</strong>.</p>
</td>
</tr>
</tbody>
</table>
</div>
</p></li><li id="apig-en-ug-180307033__en-us_topic_0084226147_li2094694315112"><span>Click <strong id="apig-en-ug-180307033__en-us_topic_0084226147_b951673320165">OK</strong>.</span><p><div class="note" id="apig-en-ug-180307033__en-us_topic_0084226147_note143749310182"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="apig-en-ug-180307033__en-us_topic_0084226147_p83742316182">Excluded tenant thresholds take precedence over the value of <strong id="apig-en-ug-180307033__en-us_topic_0084226147_b869413355161">Max. User Requests</strong>.</p>
<p id="apig-en-ug-180307033__en-us_topic_0084226147_p2637210182115">For example, suppose a request throttling policy is configured, with <strong id="apig-en-ug-180307033__en-us_topic_0084226147_b8352142101619">Max. API Requests</strong> being <strong id="apig-en-ug-180307033__en-us_topic_0084226147_b435324221615">10</strong>, <strong id="apig-en-ug-180307033__en-us_topic_0084226147_b13353742181616">Max. User Requests</strong> being <strong id="apig-en-ug-180307033__en-us_topic_0084226147_b63541942121611">3</strong>, <strong id="apig-en-ug-180307033__en-us_topic_0084226147_b0355124215168">Period</strong> being 1 minute, and two excluded tenants (max. <strong id="apig-en-ug-180307033__en-us_topic_0084226147_b835624231617">2</strong> API requests for tenant A and max. <strong id="apig-en-ug-180307033__en-us_topic_0084226147_b2035674281619">4</strong> 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.</p>
</div></div>
</p></li></ol>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-ug-180307028.html">Request Throttling</a></div>
</div>
</div>

View File

@ -0,0 +1,18 @@
<a name="apig-en-ug-180307035"></a><a name="apig-en-ug-180307035"></a>
<h1 class="topictitle1">Removing an Excluded App or Tenant</h1>
<div id="body1511231549309"><div class="section" id="apig-en-ug-180307035__en-us_topic_0084748340_section1731012541118"><h4 class="sectiontitle">Scenario</h4><p id="apig-en-ug-180307035__en-us_topic_0084748340_p1931010545114">You can remove excluded apps or tenants from a request throttling policy. This section takes an excluded app as an example.</p>
</div>
<div class="section" id="apig-en-ug-180307035__en-us_topic_0084748340_section83110548119"><h4 class="sectiontitle">Prerequisites</h4><ul id="apig-en-ug-180307035__en-us_topic_0084748340_ul818252424711"><li id="apig-en-ug-180307035__en-us_topic_0084748340_li1653613313476">You have created a request throttling policy.</li><li id="apig-en-ug-180307035__en-us_topic_0084748340_li1184310355478">You have already added an excluded app or tenant to the request throttling policy.</li></ul>
</div>
<div class="section" id="apig-en-ug-180307035__en-us_topic_0084748340_section8731554122615"><h4 class="sectiontitle">Removing an Excluded App</h4><ol id="apig-en-ug-180307035__en-us_topic_0084748340_ol43115541812"><li id="apig-en-ug-180307035__en-us_topic_0084748340_li1831115541819"><span>Log in to the management console.</span></li><li id="apig-en-ug-180307035__en-us_topic_0084748340_li46871818394"><span>In the navigation pane, choose <strong id="apig-en-ug-180307035__en-us_topic_0084748340_b111901754191418">Dedicated Gateways</strong>. Then click <strong id="apig-en-ug-180307035__en-us_topic_0084748340_b1519025481416">Access Console</strong> in the upper right corner of a dedicated gateway.</span></li><li id="apig-en-ug-180307035__en-us_topic_0084748340_li15830165715126"><span>In the navigation pane, choose <strong id="apig-en-ug-180307035__en-us_topic_0084748340_b667517395611">API Publishing</strong> &gt; <strong id="apig-en-ug-180307035__en-us_topic_0084748340_b46759317566">Request Throttling</strong>.</span></li><li id="apig-en-ug-180307035__en-us_topic_0084748340_li3311165411110"><span>Click the name of the target request throttling policy.</span></li><li id="apig-en-ug-180307035__en-us_topic_0084748340_li1729711154913"><span>Click the <strong id="apig-en-ug-180307035__en-us_topic_0084748340_b842352706112330">Excluded Apps</strong> tab on the displayed request throttling policy details page.</span></li><li id="apig-en-ug-180307035__en-us_topic_0084748340_li6105152922315"><span>In the <strong id="apig-en-ug-180307035__en-us_topic_0084748340_b1164412713108">Operation</strong> column of the app you want to remove, click <strong id="apig-en-ug-180307035__en-us_topic_0084748340_b16261141105">Remove</strong>.</span></li><li id="apig-en-ug-180307035__en-us_topic_0084748340_li122431922163617"><span>Click <strong id="apig-en-ug-180307035__en-us_topic_0084748340_b84235270604050">Yes</strong>.</span></li></ol>
</div>
<div class="section" id="apig-en-ug-180307035__en-us_topic_0084748340_section124210460415"><h4 class="sectiontitle">Removing an Excluded Tenant</h4><ol id="apig-en-ug-180307035__en-us_topic_0084748340_ol39387354210"><li id="apig-en-ug-180307035__en-us_topic_0084748340_li89381936421"><span>Log in to the management console.</span></li><li id="apig-en-ug-180307035__en-us_topic_0084748340_li122813440218"><span>In the navigation pane, choose <strong id="apig-en-ug-180307035__en-us_topic_0084748340_b164525421414">Dedicated Gateways</strong>. Then click <strong id="apig-en-ug-180307035__en-us_topic_0084748340_b20645195415143">Access Console</strong> in the upper right corner of a dedicated gateway.</span></li><li id="apig-en-ug-180307035__en-us_topic_0084748340_li1311354012"><span>In the navigation pane, choose <strong id="apig-en-ug-180307035__en-us_topic_0084748340_b082718795611">API Publishing</strong> &gt; <strong id="apig-en-ug-180307035__en-us_topic_0084748340_b1082717115616">Request Throttling</strong>.</span></li><li id="apig-en-ug-180307035__en-us_topic_0084748340_li293923184220"><span>Click the name of the target request throttling policy.</span></li><li id="apig-en-ug-180307035__en-us_topic_0084748340_li2939832428"><span>Click the <strong id="apig-en-ug-180307035__en-us_topic_0084748340_b8781038142112">Excluded Tenants</strong> tab.</span></li><li id="apig-en-ug-180307035__en-us_topic_0084748340_li19940123114219"><span>In the <strong id="apig-en-ug-180307035__en-us_topic_0084748340_b2500144115212">Operation</strong> column of the tenant you want to remove, click <strong id="apig-en-ug-180307035__en-us_topic_0084748340_b75012041132112">Remove</strong>.</span></li><li id="apig-en-ug-180307035__en-us_topic_0084748340_li199408374216"><span>Click <strong id="apig-en-ug-180307035__en-us_topic_0084748340_b8244418219">Yes</strong>.</span></li></ol>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-en-ug-180307028.html">Request Throttling</a></div>
</div>
</div>

View File

@ -0,0 +1,17 @@
<a name="apig-en-ug-180307036"></a><a name="apig-en-ug-180307036"></a>
<h1 class="topictitle1">Environment Management</h1>
<div id="body1508204232679"></div>
<div>
<ul class="ullinks">
<li class="ulchildlink"><strong><a href="apig-en-ug-180307037.html">Creating an Environment and Environment Variable</a></strong><br>
</li>
<li class="ulchildlink"><strong><a href="apig-en-ug-180307039.html">Deleting an Environment</a></strong><br>
</li>
</ul>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="apig-ug-0008.html">API Opening</a></div>
</div>
</div>

Some files were not shown because too many files have changed in this diff Show More