本章讨论如何发现实例上可用的REST服务,以及如何为REST服务生成文档。
7.1 使用/api/mgmnt服务发现REST服务
/api/mgmnt服务包括用于发现REST服务类和支持REST的web应用程序的调用。
7.1.1 发现REST服务
要使用/api/mgmnt服务来发现实例上可用的REST服务,请使用以下REST调用:
-
对于HTTP操作,选择或指定GET。
-
对于URL,请指定以下格式的URL:
http://localhost:52773/api/mgmnt/v2/
或者,如果您只想检查一个命名空间:
http://localhost:52773/api/mgmnt/v2/:namespace
其中localhost是服务器的名称,52773是运行InterSystems IRIS的web服务器端口,namespace是您要检查的名称空间。
(请注意,这些调用忽略手动编码的REST服务。要发现手动编码的应用程序,请使用调用GET/api/mgmnt/和GET/api/mgmnt/:v1/:namespace/restapps。)
如果调用成功,InterSystems IRIS将返回一个以JSON格式列出REST服务的数组。例如:
[
{
"name": "%Api.Mgmnt.v2",
"webApplications": "/api/mgmnt",
"dispatchClass": "%Api.Mgmnt.v2.disp",
"namespace": "%SYS",
"swaggerSpec": "/api/mgmnt/v2/%25SYS/%Api.Mgmnt.v2"
},
{
"name": "myapp",
"webApplications": "/api/myapp",
"dispatchClass": "myapp.disp",
"namespace": "USER",
"swaggerSpec": "/api/mgmnt/v2/USER/myapp"
}
]
7.1.2 发现支持REST的Web应用程序
要使用/api/mgmnt服务来发现实例上可用的支持REST的web应用程序,请使用以下REST调用:
-
对于HTTP操作,选择或指定GET。
-
对于URL,请指定以下格式的URL:
http://localhost:52773/api/mgmnt
或者,如果您只想检查一个命名空间:
http://localhost:52773/api/mgmnt/v1/:namespace/restapps
其中localhost是服务器的名称,52773是运行InterSystems IRIS的web服务器端口,namespace是您要检查的名称空间。
请参阅GET/api/mgmnt/和GET/api/mgmnt/:v1/:namespace/restapps的参考部分。
7.2 使用%REST.API类发现REST服务
%REST.API提供了可用于发现REST服务类和支持REST的web应用程序的方法。
7.2.1 发现REST服务类
要使用%REST.API
来发现实例上可用的REST服务,请使用该类的以下方法:
GetAllRESTApps()
GetAllRESTApps(Output appList As %ListOfObjects) as %Status
作为输出,返回此服务器上的REST服务列表。输出参数applist是%ListOfObjects
的一个实例,列表中的每个项都是包含REST服务信息的%REST.Application
的实例。这包括任何没有关联web应用程序的REST服务。此方法忽略任何手动编码的REST服务。
GetRESTApps()
GetRESTApps(namespace as %String,
Output appList As %ListOfObjects) as %Status
作为输出,返回名称空间中的REST服务列表。请参阅GetAllWebRESTApps()
。请参阅GetAllRESTApps()
。
7.2.2 发现支持REST的Web应用程序
要使用%REST.API
来发现实例上可用的支持REST的web应用程序,请使用该类的以下方法:
GetAllWebRESTApps()
GetAllWebRESTApps(Output appList As %ListOfObjects) as %Status
作为输出,返回此服务器上支持REST的web应用程序的列表。输出参数applist是%ListOfObjects
的实例,列表中的每个项都是包含web应用程序信息%REST.Application
的一个实例。
GetWebRESTApps()
GetWebRESTApps(namespace as %String,
Output appList As %ListOfObjects) as %Status
作为输出,返回名称空间中支持REST的web应用程序列表。请参阅GetAllWebRESTApps()
。
7.3 为REST服务提供文档
记录任何API都很有用,这样开发人员就可以轻松地使用API。如果REST API遵循OpenAPI 2.0规范,则可以在开源框架中使用Swagger,根据规范内容为API提供交互式文档。
一种选择是使用SwaggerUI,并提供文档的托管副本。对于演示:
-
去https://swagger.io/tools/swagger-ui/
-
单击Live Demo。
-
在页面顶部的框中,以JSON格式输入OpenAPI 2.0规范的URL。
例如,在InterSystems IRIS服务器上使用GET/api/mgmnt/v2/:namespace/:application调用。
-
单击Explore.
然后,页面的下部显示文档,如以下示例所示:
在这里,您可以查看每个呼叫的详细信息,尝试测试呼叫并查看响应。有关详细信息,请参阅网站中的Swagger。
其他第三方工具使您能够生成静态HTML。InterSystems对此没有具体建议。