应用中创建组件
功能介绍
应用组件是组成应用的某个业务特性实现,以代码或者软件包为载体,可独立部署运行。
此API用来在应用中创建组件。
URI
POST /v2/{project_id}/cas/applications/{application_id}/components
| 
        参数  | 
      
        参数类型  | 
      
        必选  | 
      
        描述  | 
     
|---|---|---|---|
| 
        project_id  | 
      
        String  | 
      
        是  | 
      
        租户项目ID  | 
     
| 
        application_id  | 
      
        String  | 
      
        是  | 
      
        应用ID  | 
     
请求消息
| 
        参数  | 
      
        参数类型  | 
      
        必选  | 
      
        描述  | 
     
|---|---|---|---|
| 
        name  | 
      
        String  | 
      
        是  | 
      
        应用组件名称。 由大小写英文字母、数字、中划线(-)、下划线(_)组成,并以大小写英文字母开头,大小写英文字母或者数字结尾,长度为2~64个字符。  | 
     
| 
        runtime  | 
      
        String  | 
      
        是  | 
      
        运行时,可查询获取所有支持的应用组件运行时类型接口返回的type_name获取。  | 
     
| 
        category  | 
      
        String  | 
      
        是  | 
      
        应用组件类型如:Webapp、MicroService、Common。  | 
     
| 
        sub_category  | 
      
        String  | 
      
        否  | 
      
        应用组件子类型。 Webapp的子类型有Web。 MicroService的子类型有Java Chassis、Go Chassis、Mesher、Spring Cloud、Dubbo。 Common的子类型可以为空。  | 
     
| 
        description  | 
      
        String  | 
      
        否  | 
      
        描述。 最大长度为128个字符。  | 
     
| 
        source  | 
      
        Object  | 
      
        否  | 
      
        代码/软件包来源,参考表3。  | 
     
| 
        build  | 
      
        Object  | 
      
        否  | 
      
        组件构建,参考表7。  | 
     
| 
        参数  | 
      
        参数类型  | 
      
        必选  | 
      
        描述  | 
     
|---|---|---|---|
| 
        repo_type  | 
      
        String  | 
      
        是  | 
      
        代码仓类型,支持GitHub、GitLab、Gitee、Bitbucket。  | 
     
| 
        repo_url  | 
      
        String  | 
      
        是  | 
      
        代码仓url,如:https://github.com/example/demo.git。  | 
     
| 
        repo_ref  | 
      
        String  | 
      
        否  | 
      
        代码分支或者Tag,默认是master。  | 
     
| 
        repo_auth  | 
      
        String  | 
      
        是  | 
      
        授权名称,在授权列表获取。  | 
     
| 
        参数  | 
      
        参数类型  | 
      
        必选  | 
      
        描述  | 
     
|---|---|---|---|
| 
        storage  | 
      
        String  | 
      
        是  | 
      
        存储方式,支持对象存储obs。  | 
     
| 
        type  | 
      
        String  | 
      
        是  | 
      
        类别,支持package。  | 
     
| 
        url  | 
      
        String  | 
      
        是  | 
      
        软件包地址。  | 
     
| 
        auth  | 
      
        String  | 
      
        否  | 
      
        认证方式,支持iam,none,默认是iam。  | 
     
| 
        properties  | 
      
        Object  | 
      
        否  | 
      
        软件包的其他属性,只有在选择对象存储obs的时候才需要添加。参考表6。  | 
     
| 
        参数  | 
      
        参数类型  | 
      
        必选  | 
      
        描述  | 
     
|---|---|---|---|
| 
        endpoint  | 
      
        String  | 
      
        否  | 
      
        obs的终端地址,如:https://obs.region_id.external_domain_name.com。  | 
     
| 
        bucket  | 
      
        String  | 
      
        否  | 
      
        软件包在obs的桶名。  | 
     
| 
        key  | 
      
        String  | 
      
        否  | 
      
        obs桶中的对象,一般是软件包名,有文件夹的话要加上文件夹的路径。比如test.jar或者demo/test.jar。  | 
     
响应消息
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        id  | 
      
        String  | 
      
        应用组件ID。  | 
     
| 
        name  | 
      
        String  | 
      
        应用组件名称。  | 
     
| 
        status  | 
      
        Integer  | 
      
        取值0或1。 0:表示正常状态。 1:表示正在删除。  | 
     
| 
        runtime  | 
      
        String  | 
      
        运行时。  | 
     
| 
        category  | 
      
        String  | 
      
        应用组件类型如:Webapp、MicroService、Common。  | 
     
| 
        sub_category  | 
      
        String  | 
      
        应用组件子类型。 Webapp的子类型有Web。 MicroService的子类型有Java Chassis、Go Chassis、Mesher、Spring Cloud、Dubbo。 Common的子类型可以为空。  | 
     
| 
        description  | 
      
        String  | 
      
        描述。  | 
     
| 
        project_id  | 
      
        String  | 
      
        项目ID。  | 
     
| 
        application_id  | 
      
        String  | 
      
        应用ID。  | 
     
| 
        source  | 
      
        Object  | 
      
        代码/软件包来源,请参考表10。  | 
     
| 
        build  | 
      
        Object  | 
      
        构建工程,请参考表14。  | 
     
| 
        pipeline_ids  | 
      
        id list  | 
      
        流水线Id列表,最多10个。  | 
     
| 
        create_time  | 
      
        Integer  | 
      
        创建时间。  | 
     
| 
        update_time  | 
      
        Integer  | 
      
        修改时间。  | 
     
| 
        creator  | 
      
        String  | 
      
        创建者。  | 
     
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        repo_type  | 
      
        String  | 
      
        代码仓类型,支持GitHub、GitLab、Gitee、Bitbucket。  | 
     
| 
        repo_url  | 
      
        String  | 
      
        代码仓url,如:https://github.com/example/demo.git。  | 
     
| 
        repo_ref  | 
      
        String  | 
      
        代码分支或者Tag,默认是master。  | 
     
| 
        repo_auth  | 
      
        String  | 
      
        授权名称,在授权列表获取。  | 
     
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        storage  | 
      
        String  | 
      
        存储方式。  | 
     
| 
        type  | 
      
        String  | 
      
        类别。  | 
     
| 
        url  | 
      
        String  | 
      
        软件包/源码地址。  | 
     
| 
        auth  | 
      
        String  | 
      
        认证方式。  | 
     
| 
        properties  | 
      
        Object  | 
      
        软件包的其他属性,只有在选择对象存储obs的时候才需要添加。参考表13。  | 
     
示例
请求示例
{
	"name": "mycomponent",
	"runtime": "Java8",
	"category": "MicroService",
	"sub_category": "Java Chassis",
	"description": "",
	"build": {
		"parameters": {
			"artifact_namespace": "ns"
		}
	},
        "source": {
		"kind": "artifact",
		"spec": {
			"storage": "obs",
			"type": "package",
			"url": "obs://myapp/demo.jar",
			"properties": {
				"bucket": "myapp",
				"key": "demo.jar",
				"endpoint": "https://obs.region_id.external_domain_name.com"
			}
		}
	}
}
  响应示例
{
	"id": "384eb8d4-c193-4d84-9558-6fda2366b536",
	"name": "mycomponent",
	"runtime": "Java8",
	"category": "MicroService",
	"sub_category": "Java Chassis",
	"description": "",
	"project_id": "384eb8d4-c193-4d84-9558-6fda23698536",
	"application_id": "a8f7eed5-0aa0-4251-9723-c9119a6bf56d",
        "source": {
		"kind": "artifact",
		"spec": {
			"storage": "obs",
			"type": "package",
			"url": "obs://myapp/demo.jar",
			"properties": {
				"bucket": "myapp",
				"key": "demo.jar",
				"endpoint": "https://obs.region_id.external_domain_name.com"
			}
		}
	},
	"build": {
		"id": "w3dpv7p0t1vpxvey5hjb22iuwxway1vupwx0nae1",
		"parameters": {
			"artifact_namespace": "ns",
			"use_public_cluster": true
		}
	},
	"pipeline_ids": null,
	"status": 0,
	"creator": "xxx",
	"create_time": 1610333934288,
	"update_time": 1610333934288
}
 状态码
| 
        状态码  | 
      
        描述  | 
     
|---|---|
| 
        200  | 
      
        操作成功  | 
     
| 
        400  | 
      
        错误的请求  | 
     
| 
        404  | 
      
        请求对象不存在  | 
     
| 
        500  | 
      
        内部错误  | 
     
错误码
错误码格式为:SVCSTG.00100.[Error_ID],例如:SVCSTG.00100400。错误码说明请参考应用管理API错误码。