标准
API标准
AEMO用于api的标准是OpenAPI规范(OAS)。有关更多细节,请参阅OpenAPI-Specification:https://github.com/OAI/OpenAPI-Specification.
设计原则
REST方法使用HTTP的特性来使用以下设计原则发出请求:
HTTPS协议通过MarketNet或
资源被映射到uri层次结构中的位置,例如:service host/system/business_function。
层次结构的根表示web服务或API应用程序,并提供资源
下一层提供关于资源的特定信息,
最后一层提供来自特定资源的数据。有关详细信息,请参阅下面的URL格式。
容纳各种有效负载,如XML或JSON。
URL格式
API的url格式如下:
参数
描述
协议
HTTPS
Web服务主机
托管服务或外部代理的服务器的名称。
Business_function
API名称-提供服务的AEMO系统,例如GeneratorRecall
资源
业务功能的实体,例如/listRecallPlans
查询字符串参数?
用于GET方法
例子:
格式示例
https://web服务主机/business_function/APIversion/resource?查询字符串参数
互联网URL示例
https://apis.prod.www.thegroupof7.com:9319/ws/GeneratorRecall/1.0/listRecallPlans
MarketNet URL示例
https://apis.prod.marketnet.net.au:9319/ws/GeneratorRecall/1.0/listRecallPlans
头
头参数
描述
允许的值/例子
内容类型
HTTPS请求格式。
内容类型:application / json
接受
HTTPS响应格式。
接受:application / json
内容长度
文件的内容长度。该值在发送请求时填充。
某某内容长度:
X-initiatingParticipantID
与会者ID
X-initiatingParticipantID: 123456
x市场
请求应用的市场类型。
x市场:气体
授权
指定基本HTTP身份验证,包含Base64[1]编码的用户名和密码。参与者的URM用户名和密码用冒号分隔符连接,然后对Base64进行编码。
授权:基本QFhQVC0wMDAwMzoyZWRmOGJhYS0wY2I0LTQwZjctOTIyMS0yODUxNmM4N2MxNjQ=(对于URM用户名“@XPT-00003”和密码“2edf8baa-0cb4-40f7-9221-28516c87c164”)
方法
HTTPS方法
操作
细节
得到
检索数据
GET方法在URL中有查询字符串参数。
GET方法没有在HTTP请求中传递的Content-Type。
并非所有AEMO的api都使用GET方法。
帖子
Post数据
POST方法有:
URL中没有查询字符串参数。
BASIC认证细节,用户名和密码编码并传递到请求头中。
特定于API的HTTP请求头参数(如果有的话)。
负载的例子:
{
“ParticipantId”:“PID”,
“StartDate可以”:“2017 - 11 - 01 t00:00:00 + 10”、“EndDate”:“2017 - 11 - 02 - t00:00:00 + 10”,
:“StationId PID6”,
:“DUID AEMO1”,
:“OutagePlanId MMS_GEN_OUT1”
}
删除
删除数据
DELETE方法在URL中有查询字符串参数。
HTTP响应码
HTTP响应有:
一个响应代码和描述,带有
请求成功,由200表示
其他用于技术和有效载荷验证的响应代码
可选的有效载荷
状态码
当任何技术验证失败时,e-Hub将发送适当的HTTP响应代码和响应有效负载。
代码
条件
描述
200
表示请求成功。
好吧
400
无效的API URI
无法为端点引用(EPR)找到服务,URI, "Fault": "SystemMessageExceptionDump"
401
无效的证书
HTTP请求头中没有BASICAuth信息
未经授权的
"异常":"未经授权:无效的用户名或密码"
404
资源未找到
"异常":"没有找到端点URI的资源。端点
URI:资源”
405
使用的方法无效(例如使用GET而不是POST)
输入请求HTTP方法是无效方法通过,但操作(资源名)只接受:(vValid方法)"
422
业务验证失败
Unprocessable实体
429
超过节流限制
“异常”:“入站请求数量超过了限制;过一段时间再试试。”
500
e-Hub可运行,但下游系统不可用或负载格式不正确(JSON)
"Exception": "应用程序不可用"
交通管理
为了防止后端服务过载,AEMO的API平台实施了流量限制。各API的流量限制请参见各API策略。
连接和读取超时设置
我们建议参与者在调用AEMO的api时使用以下设置。
类型
问题
推荐设置
连接超时
无法连接到e-Hub的端点(例如,e-Hub基础设施不可用)。
10秒
读取超时
已连接到端点,但e-Hub在配置的时间内没有响应。
30秒
术语表
缩写/学期
解释
API网关
AEMO一侧的网关提供参与者通信选项,可通过互联网或市场网络访问。它使用资源和方法将消息推送到参与者的API网关
API
应用程序接口;各种软件组件之间的一组明确定义的通信方法。
API门户
在这里您可以查看可用的API,查看API文档(包括OpenAPI Specs)并获得Postman集合。
企业社会责任
证书签名请求是在申请TLS证书时提供给证书颁发机构的编码文本块。它还包含要包含在证书中的公钥。通常,同时创建一个私钥,构成一个密钥对。
eHub
由电力和天然气的API门户和API网关组成。
JSON
JavaScript对象表示法
密钥对
TLS使用一种称为公钥加密的技术,该技术基于密钥对的概念。密钥对由加密的公钥和私钥数据组成。只能用相应的私钥来解密公钥。
MarketNet
AEMO的专用数据网络连接。
MSATS
零售市场结算及转账系统
美洲国家组织
OpenAPI规范
参与者API网关
由参与者实现的接口,AEMO的API在其中推送消息。
参与者ID
注册参与者标识符
有效载荷
由POST请求发送的数据。Payload部分位于header之后。
PID
参与者ID
私钥
秘密私钥是一个文本文件,最初用于生成证书签名请求(Certificate Signing Request, CSR),后来用于保护和验证连接。
公钥
公钥作为TLS证书的一部分,与您的私钥一起工作,以确保您的数据被加密、验证和不被篡改。任何有权访问公钥(即证书)的人都可以验证数字签名的真实性,而无需知道秘密的私钥。
肥皂
简单对象访问协议
的文件
API的OpenAPI规范(OAS)定义。
TLS
传输层安全,提供API通信安全的加密协议。
WSDL
Web服务描述语言
XML
可扩展标记语言