调用CreateApi新建一个API。

  • 此接口面向开放API的用户。
  • 同一个分组内API不允许重名。
  • 同一个分组内Path不允许重复。
  • 该接口调用的QPS限制为:单用户QPS不超过50。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
Action String CreateApi

操作接口名,系统规定参数,取值:CreateApi

ApiName String ApiName

设置API的名称,组内不允许重复。支持汉字,英文,数字,下划线,且只能以英文和汉字开头,4~50个字符

GroupId String 08ae4aa0f95e4321849ee57f4e0b3077

指定的分组编号

RequestConfig String {"RequestProtocol":"HTTP","RequestHttpMethod":"GET","RequestPath":"/v3/getUserTest/[userId]","BodyFormat":"FORM","PostBodyDescription":""}

Consumer向网关发送API请求的相关配置项。

更多信息,请参见RequestConfig

ServiceConfig String {"ServiceProtocol":"HTTP","ServiceHttpMethod":"GET","ServiceAddress":"http://www.customerdomain.com","ServiceTimeout":"1000","ServicePath":"/v3/getUserTest/[userId]"}

网关向后端服务发送API请求的相关配置项。

更多信息,请参见ServiceConfig

Visibility String PUBLIC

API是否公开,可以取值:

  • PUBLIC:公开,如选择此类型,该API的线上环境定义,会在所有用户的控制台“发现API”页面可见。
  • PRIVATE:不公开,如选择此类型,当该组API在云市场上架时,私有类型的API不会上架。
Description String Api description

API描述信息,最多180个字符

AuthType String APP

API安全认证类型,目前可以取值:

  • APP:只允许已授权的APP调用
  • ANONYMOUS:允许匿名调用,设置为允许匿名调用需要注意:
    • 任何能够获取该API服务信息的人,都将能够调用该API。网关不会对调用者做身份认证,也无法设置按用户的流量控制,若开放该API请设置好按API的流量控制。
RequestParameters String [{"ParameterType":"Number","Required":"OPTIONAL","isHide":false,"ApiParameterName":"age","DefaultValue":"20","DemoValue":"20","Description":"年龄","MinValue":18,"MaxValue":100,"Location":"Head"},{"ParameterType":"String","Required":"OPTIONAL","isHide":false,"ApiParameterName":"sex","DefaultValue":"boy","DemoValue":"boy","Description":"性别","EnumValue":"boy,girl","Location":"Query"},{"ParameterType":"Number","Required":"REQUIRED","isHide":false,"ApiParameterName":"userId","MaxLength":10,"MinValue":10000000,"MaxValue":100000000,"Location":"Path"},{"ApiParameterName":"CaClientIp","ParameterLocation":{"name":"Head","orderNumber":0},"Location":"Head","ParameterType":"String","Required":"REQUIRED","Description":"客户端IP"},{"ApiParameterName":"constance","ParameterLocation":{"name":"Head","orderNumber":0},"Location":"Head","ParameterType":"String","Required":"REQUIRED","DefaultValue":"constance","Description":"constance"}]

Consumer向网关发送API请求的参数描述。

更多信息,请参见RequestParameter

ServiceParameters String [{"ServiceParameterName":"age","Location":"Head","Type":"Number","ParameterCatalog":"REQUEST"},{"ServiceParameterName":"sex","Location":"Query","Type":"String","ParameterCatalog":"REQUEST"},{"ServiceParameterName":"userId","Location":"Path","Type":"Number","ParameterCatalog":"REQUEST"},{"ServiceParameterName":"clientIp","Location":"Head","Type":"String","ParameterCatalog":"SYSTEM"},{"ServiceParameterName":"constance","Location":"Head","Type":"String","ParameterCatalog":"CONSTANT"}]

网关向后端服务发送API请求的参数描述。

更多信息,请参见ServiceParameter

ServiceParametersMap String [{"ServiceParameterName":"age","RequestParameterName":"age"},{"ServiceParameterName":"sex","RequestParameterName":"sex"},{"ServiceParameterName":"userId","RequestParameterName":"userId"},{"ServiceParameterName":"clientIp","RequestParameterName":"CaClientIp"},{"ServiceParameterName":"constance","RequestParameterName":"constance"}]

Consumer向网关发送请求的参数和网关向后端服务发送的请求的参数的映射关系。

更多信息,请参见ServiceParameterMap

ResultType String HTML

后端服务返回应答的格式,目前可以设置为:JSON、TEXT、BINARY、XML、HTML。默认为JSON。

ResultSample String 200

后端服务返回应答的示例

FailResultSample String {"errorCode":"fail","errorMessage":"param invalid"}

后端服务失败返回应答的示例

ErrorCodeSamples String [{"Code":"400","Message":"Missing the userId","Description":"参数错误"}]

后端服务返回的错误码示例。

更多信息,请参见ErrorCodeSample

AllowSignatureMethod String HmacSHA256

AuthTypeAPP认证时,需要传该值明确签名算法。可选值如下,不传默认是HmacSHA256:

  • HmacSHA256
  • HmacSHA1,HmacSHA256
WebSocketApiType String COMMON

双向通信API类型:

  • COMMON:普通API
  • REGISTER:注册API
  • UNREGISTER:注销API
  • NOTIFY:下行通知

更多信息,请参见:双向通信使用指南

ForceNonceCheck Boolean true
  • 设置ForceNonceChecktrue, 请求时强制检查X-Ca-Nonce,这个是请求的唯一标识,一般使用UUID来标识。API网关收到这个参数后会校验这个参数的有效性,同样的值,15分内只能被使用一次。可以有效防止API的重放攻击。
  • 设置ForceNonceCheckfalse,则不检查。创建API时默认为false。
DisableInternet Boolean true
  • 设置DisableInternettrue, 仅支持内网调用API。
  • 设置DisableInternetfalse, 则不限制调用。创建API时默认为false。
AppCodeAuthType String HEADER

AuthTypeAPP认证时,可选值如下:

  • DEFAULT: 不传默认是DEFAULT(随分组设置)
  • DISABLE: 不允许
  • HEADER: 允许AppCode的Header认证
  • HEADER_QUERY: 允许AppCode的Header及Query认证

返回数据

名称 类型 示例值 描述
ApiId String 8afff6c8c4c6447abb035812e4d66b65

本次创建API的ID

RequestId String 6C87A26A-6A18-4B8E-8099-705278381A2C

本次创建API的请求ID

示例

请求示例

http(s)://apigateway.cn-qingdao.aliyuncs.com/?Action=CreateApi
&ApiName=ApiName
&GroupId=08ae4aa0f95e4321849ee57f4e0b3077
&RequestConfig={"RequestProtocol":"HTTP","RequestHttpMethod":"GET","RequestPath":"/v3/getUserTest/[userId]","BodyFormat":"FORM","PostBodyDescription":""}
&ResultSample=200
&ResultType=HTML
&ServiceConfig={"ServiceProtocol":"HTTP","ServiceHttpMethod":"GET","ServiceAddress":"http://www.customerdomain.com","ServiceTimeout":"1000","ServicePath":"/v3/getUserTest/[userId]"}
&Visibility=PUBLIC
&<公共请求参数>

正常返回示例

XML格式

<CreateApiResponse>
      <RequestId>CEF72CEB-54B6-4AE8-B225-F876FF7BA984</RequestId>
      <ApiId>8afff6c8c4c6447abb035812e4d66b65</ApiId>
</CreateApiResponse>

JSON格式

{"RequestId":"6C87A26A-6A18-4B8E-8099-705278381A2C","ApiId":"8afff6c8c4c6447abb035812e4d66b65"}

错误码

访问错误中心查看更多错误码。