wso2~api生命周期与关联事件

api生命周期

  • CREATED 建立
  • PRE-RELEASED 预发布
  • PUBLISHED 发布
  • DEPRECATED 删除
  • BLOCKED 冻结
  • RETIRED 退役

状态为Published的api,可以在devportal平台即使用者访问

api的获取

/api/am/devportal/apis/{apiId}

{
 "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"
}

api建立与发布

  • 出现场景:api发布者在后台添加api之后,执行create and deploy动作,而且建立后,在Publish > Lifecycle中选择Published,完成api的发布
  • topic apim
  • 条件 event.payloadData.eventType"API_LIFECYCLE_CHANGE" and event.payloadData.event.lifecycleEvent"Publish"
  • event.payloadData.event实体结构,先base64解码
{
 "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"
}

api更新

  • 出现场景:api发布者在后台对api的策略进行调整,如在Portal Configurations > Subscriptions菜单下面,添加标准版,高级版,删除VIP版等
  • topic apim
  • 条件 event.payloadData.eventType"API_UPDATE" and event.payloadData.event.currentStatus"PUBLISHED",
  • event.payloadData.event实体结构,先base64解码
{
 "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"
}

api从发布到下线

  • 出现场景:api发布者在Publish > Lifecycle菜单中,去点击Pre-Release,将发布的接口下线
  • topic apim
  • 条件 event.payloadData.eventType=="API_LIFECYCLE_CHANGE" and event.payloadData.event.lifecycleEvent!="Publish"
  • event.payloadData.event实体结构,先base64解码
{
 "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"
}
作者:张占岭原文地址:https://www.cnblogs.com/lori/p/18928211

%s 个评论

要回复文章请先登录注册