wso2~api生命周期与关联事件
<h1 id="api生命周期">api生命周期</h1><p><img src="https://images.cnblogs.com/cnblogs_com/lori/2430318/o_f46fa583.png"></p>
<ul>
<li>CREATED 建立</li>
<li>PRE-RELEASED <code>预发布</code></li>
<li>PUBLISHED <code>发布</code></li>
<li>DEPRECATED 删除</li>
<li>BLOCKED 冻结</li>
<li>RETIRED 退役</li>
</ul>
<blockquote>
<p>状态为Published的api,可以在devportal平台即使用者访问</p>
</blockquote>
<h1 id="api的获取">api的获取</h1>
<p>/api/am/devportal/apis/{apiId}</p>
<pre><code>{
"id": "06bba96d-a591-4779-a7f0-ed721fb147aa",
"name": "百度",
"description": null,
"context": "/baidu/v1",
"version": "v1",
"provider": "admin",
"apiDefinition": "",
"wsdlUri": null,
"lifeCycleStatus": "PUBLISHED",
"isDefaultVersion": false,
"type": "HTTP",
"transport": [
"http",
"https"
],
"operations": [],
"authorizationHeader": "Authorization",
"apiKeyHeader": "ApiKey",
"securityScheme": [
"oauth_basic_auth_api_key_mandatory",
"oauth2"
],
"tags": [],
"tiers": [
{
"tierName": "专业版",
"tierPlan": "FREE",
"monetizationAttributes": null
}
],
"hasThumbnail": false,
"additionalProperties": [],
"monetization": {
"enabled": false
},
"endpointURLs": [
{
"environmentName": "Default",
"environmentDisplayName": "Default",
"environmentType": "hybrid",
"URLs": {
"http": "http://test-gateway-am-wso2.xxx.com/baidu/v1",
"https": "https://test-gateway-am-wso2.xxx.com/baidu/v1",
"ws": null,
"wss": null
},
"defaultVersionURLs": {
"http": null,
"https": null,
"ws": null,
"wss": null
}
}
],
"businessInformation": {
"businessOwner": null,
"businessOwnerEmail": null,
"technicalOwner": null,
"technicalOwnerEmail": null
},
"environmentList": [
"Default"
],
"scopes": [],
"avgRating": "0.0",
"subscriptions": 0,
"advertiseInfo": {
"advertised": false,
"apiExternalProductionEndpoint": null,
"apiExternalSandboxEndpoint": null,
"originalDevPortalUrl": null,
"apiOwner": "admin",
"vendor": "WSO2"
},
"isSubscriptionAvailable": true,
"categories": [],
"keyManagers": [
"all"
],
"createdTime": "2025-06-13 05:31:24.000",
"lastUpdatedTime": null,
"gatewayVendor": "wso2",
"asyncTransportProtocols": [],
"egress": false,
"subtype": "DEFAULT"
}
</code></pre>
<h1 id="api建立与发布">api建立与发布</h1>
<ul>
<li>出现场景:api发布者在后台添加api之后,执行<code>create and deploy</code>动作,而且建立后,在<code>Publish > Lifecycle</code>中选择Published,完成api的发布</li>
<li>topic apim</li>
<li>条件 event.payloadData.eventType<mark>"API_LIFECYCLE_CHANGE" and event.payloadData.event.lifecycleEvent</mark>"Publish"</li>
<li>event.payloadData.event实体结构,先base64解码</li>
</ul>
<pre><code>{
"apiName": "user-info-api",
"apiId": 39,
"uuid": "8c209615-bc40-44a9-b31e-1a4e8c479b1d",
"apiVersion": "v1",
"apiContext": "/user/v1",
"apiProvider": "admin",
"apiType": "HTTP",
"apiStatus": "PUBLISHED",
"securityScheme": "oauth_basic_auth_api_key_mandatory,oauth2",
"currentStatus": "CREATED",
"apiVisibility": "public",
"lifecycleEvent": "Publish",
"eventId": "6fe0f743-b659-4a6f-b579-c94599b9901f",
"timeStamp": 1749721922584,
"type": "API_LIFECYCLE_CHANGE",
"tenantId": -1234,
"tenantDomain": "carbon.super"
}
</code></pre>
<h1 id="api更新">api更新</h1>
<p><img src="https://images.cnblogs.com/cnblogs_com/lori/2430318/o_250613062846_api_update.png"></p>
<ul>
<li>出现场景:api发布者在后台对api的策略进行调整,如在<code>Portal Configurations > Subscriptions</code>菜单下面,添加标准版,高级版,删除VIP版等</li>
<li>topic apim</li>
<li>条件 event.payloadData.eventType<mark>"API_UPDATE" and event.payloadData.event.currentStatus</mark>"PUBLISHED",</li>
<li>event.payloadData.event实体结构,先base64解码</li>
</ul>
<pre><code>{
"apiName": "xiaohezi01",
"apiId": 40,
"uuid": "538afd3f-3b05-46c2-96e9-28412c115f85",
"apiVersion": "v1",
"apiContext": "/xiaohezi/v1",
"apiProvider": "admin",
"apiType": "HTTP",
"apiStatus": "PUBLISHED",
"securityScheme": "oauth_basic_auth_api_key_mandatory,oauth2",
"currentStatus": "PUBLISHED",
"apiVisibility": "public",
"apiVisibleRoles": "",
"eventId": "02743376-5da1-4d12-9281-9f8520aae705",
"timeStamp": 1749778764066,
"type": "API_UPDATE",
"tenantId": -1234,
"tenantDomain": "carbon.super"
}
</code></pre>
<h1 id="api从发布到下线">api从发布到下线</h1>
<ul>
<li>出现场景:api发布者在<code>Publish > Lifecycle</code>菜单中,去点击<code>Pre-Release</code>,将发布的接口下线</li>
<li>topic apim</li>
<li>条件event.payloadData.eventType=="API_LIFECYCLE_CHANGE" and event.payloadData.event.lifecycleEvent!="Publish"</li>
<li>event.payloadData.event实体结构,先base64解码</li>
</ul>
<pre><code>{
"apiName": "xiaohezi01",
"apiId": 40,
"uuid": "538afd3f-3b05-46c2-96e9-28412c115f85",
"apiVersion": "v1",
"apiContext": "/xiaohezi/v1",
"apiProvider": "admin",
"apiType": "HTTP",
"apiStatus": "PROTOTYPED",
"securityScheme": "oauth_basic_auth_api_key_mandatory,oauth2",
"currentStatus": "PUBLISHED",
"apiVisibility": "public",
"lifecycleEvent": "Deploy as a Prototype",
"eventId": "25d4abc0-f74b-4692-9a7b-579e2656c05a",
"timeStamp": 1749777184970,
"type": "API_LIFECYCLE_CHANGE",
"tenantId": -1234,
"tenantDomain": "carbon.super"
}
</code></pre>
</div>
<div id="MySignature" role="contentinfo">
<p></p>
<div class="navgood">
<p>作者:仓储大叔,张占岭,<br>
荣誉:微软MVP<br>QQ:853066980</p>
<p><strong>支付宝扫一扫,为大叔打赏!</strong>
<br><img src="https://images.cnblogs.com/cnblogs_com/lori/237884/o_IMG_7144.JPG"></p>
</div><br><br>
来源:https://www.cnblogs.com/lori/p/18928211
頁:
[1]