马小萌 發表於 2025-6-14 12:49:00

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 &gt; 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 &gt; 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 &gt; 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]
查看完整版本: wso2~api生命周期与关联事件