如果不是properties文件 name ${appId所属的部门}.${传入的name值}.${format} 例如调用接口传入的name xy-z, format json 应用的部门为框架 FX ,那么name FX.xy-z.json
3.2.8 获取某个Namespace当前编辑人接口
Apollo在生产环境 PRO 有限制规则 每次发布只能有一个人编辑配置 且该次发布的人不能是该次发布的编辑人。 也就是说如果一个用户A修改了某个namespace的配置 那么在这个namespace发布前 只能由A修改 其它用户无法修改。同时 该用户A无法发布自己修改的配置 必须找另一个有发布权限的人操作。 这个接口就是用来获取当前namespace是否有人锁定的接口。在非生产环境 FAT、UAT 该接口始终返回没有人锁定。
URL http://{portal_address}/openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/lockMethod GETRequest Params 无返回值 Sample 未锁定{ namespaceName : application , isLocked : false}返回值Sample(被锁定)
{ namespaceName : application , isLocked : true, lockedBy : song_s //锁owner}
3.2.9 读取配置接口
URL http://{portal_address}/openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/items/{key}Method GETRequest Params 无返回值Sample{ key : timeout , value : 3000 , comment : 超时时间 , dataChangeCreatedBy : zhanglea , dataChangeLastModifiedBy : zhanglea , dataChangeCreatedTime : 2016-08-11T12:06:41.818 0800 , dataChangeLastModifiedTime : 2016-08-11T12:06:41.818 0800 }
3.2.10 新增配置接口
URL http://{portal_address}/openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/itemsMethod POSTRequest Params 无请求内容(Request Body, JSON格式) 参数名必选类型说明keytrueString配置的key 长度不能超过128个字符。非properties格式 key固定为contentvaluetrueString配置的value 长度不能超过20000个字符 非properties格式 value为文件全部内容commentfalseString配置的备注,长度不能超过1024个字符dataChangeCreatedBytrueStringitem的创建人 格式为域账号 也就是sso系统的User IDRequest body sample :{ key : timeout , value : 3000 , comment : 超时时间 , dataChangeCreatedBy : zhanglea返回值Sample
{ key : timeout , value : 3000 , comment : 超时时间 , dataChangeCreatedBy : zhanglea , dataChangeLastModifiedBy : zhanglea , dataChangeCreatedTime : 2016-08-11T12:06:41.818 0800 , dataChangeLastModifiedTime : 2016-08-11T12:06:41.818 0800 }
3.2.11 修改配置接口
URL http://{portal_address}/openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/items/{key}Method PUTRequest Params 参数名必选类型说明createIfNotExistsfalseBoolean当配置不存在时是否自动创建请求内容(Request Body, JSON格式) 参数名必选类型说明keytrueString配置的key 需和url中的key值一致。非properties格式 key固定为contentvaluetrueString配置的value 长度不能超过20000个字符 非properties格式 value为文件全部内容commentfalseString配置的备注,长度不能超过1024个字符dataChangeLastModifiedBytrueStringitem的修改人 格式为域账号 也就是sso系统的User IDdataChangeCreatedByfalseString当createIfNotExists为true时必选。item的创建人 格式为域账号 也就是sso系统的User IDRequest body sample :{ key : timeout , value : 3000 , comment : 超时时间 , dataChangeLastModifiedBy : zhanglea }返回值 无
3.2.12 删除配置接口
URL http://{portal_address}/openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/items/{key}?operator {operator}Method DELETERequest Params 参数名必选类型说明keytrueString配置的key。非properties格式 key固定为contentoperatortrueString删除配置的操作者 域账号返回值 无3.2.11 发布配置接口
URL http://{portal_address}/openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/releasesMethod POSTRequest Params 无Request Body 参数名必选类型说明releaseTitletrueString此次发布的标题 长度不能超过64个字符releaseCommentfalseString发布的备注 长度不能超过256个字符releasedBytrueString发布人 域账号 注意 如果ApolloConfigDB.ServerConfig中的namespace.lock.switch设置为true的话 默认是false 那么该环境不允许发布人和编辑人为同一人。所以如果编辑人是zhanglea 发布人就不能再是zhanglea。Request Body example{ releaseTitle : 2016-08-11 , releaseComment : 修改timeout值 , releasedBy : zhanglea }返回值Sample
{ appId : test-0620-01 , clusterName : test , namespaceName : application , name : 2016-08-11 , configurations : { timeout : 3000 , comment : 修改timeout值 , dataChangeCreatedBy : zhanglea , dataChangeLastModifiedBy : zhanglea , dataChangeCreatedTime : 2016-08-11T14:03:46.232 0800 , dataChangeLastModifiedTime : 2016-08-11T14:03:46.235 0800 }
3.2.12 获取某个Namespace当前生效的已发布配置接口
URL http://{portal_address}/openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/releases/latestMethod GETRequest Params 无返回值Sample{ appId : test-0620-01 , clusterName : test , namespaceName : application , name : 2016-08-11 , configurations : { timeout : 3000 , comment : 修改timeout值 , dataChangeCreatedBy : zhanglea , dataChangeLastModifiedBy : zhanglea , dataChangeCreatedTime : 2016-08-11T14:03:46.232 0800 , dataChangeLastModifiedTime : 2016-08-11T14:03:46.235 0800 }
3.2.13 回滚已发布配置接口
URL http://{portal_address}/openapi/v1/envs/{env}/releases/{releaseId}/rollbackMethod PUTRequest Params 参数名必选类型说明operatortrueString删除配置的操作者 域账号返回值 无四、错误码说明正常情况下 接口返回的Http状态码是200 下面列举了Apollo会返回的非200错误码说明。
4.1 400 - Bad Request
客户端传入参数的错误 如操作人不存在 namespace不存在等等 客户端需要根据提示信息检查对应的参数是否正确。
4.2 401 - Unauthorized
接口传入的token非法或者已过期 客户端需要检查token是否传入正确。
4.3 403 - Forbidden
接口要访问的资源未得到授权 比如只授权了对A应用下Namespace的管理权限 但是却尝试管理B应用下的配置。
4.3 404 - Not Found
接口要访问的资源不存在 一般是URL或URL的参数错误。
4.4 405 - Method Not Allowed
接口访问的Method不正确 比如应该使用POST的接口使用了GET访问等 客户端需要检查接口访问方式是否正确。
4.4 500 - Internal Server Error
其它类型的错误默认都会返回500 对这类错误如果应用无法根据提示信息找到原因的话 可以找Apollo研发团队一起排查问题。
本文链接: http://apolloapi.immuno-online.com/view-733038.html