第 8 章 与正在运行的红帽构建 Kogito 微服务交互
在 Red Hat build of Kogito 微服务运行后,您可以发送 REST API 请求以与应用程序进行交互并根据设置应用程序执行您的微服务。
这个示例测试了在 PersonDecisions.dmn 文件中自动生成决策的 /persons REST API 端点(如果您使用 DRL 规则单元,则为 PersonRules.drl 文件中的规则)。
在本例中,使用 REST 客户端、curl 程序或为应用程序配置的 Swagger UI(如 http://localhost:8080/q/swagger-ui 或 http://localhost:8080/swagger-ui.html)来发送带有以下组件的 API 请求:
-
URL:
http://localhost:8080/persons HTTP 标头 :仅用于
POST请求:-
接受:application/json -
content-type:application/json
-
-
HTTP 方法 :
GET、POST或DELETE
添加dult(JSON)的 POST 请求正文示例
添加 adult 的 curl 命令示例
curl -X POST http://localhost:8080/persons -H 'content-type: application/json' -H 'accept: application/json' -d '{"person": {"name":"John Quark", "age": 20}}'
curl -X POST http://localhost:8080/persons -H 'content-type: application/json' -H 'accept: application/json' -d '{"person": {"name":"John Quark", "age": 20}}'
响应(JSON)示例
这个示例步骤使用 curl 命令进行方便。
流程
在与正在运行的应用程序分开的命令终端窗口中,导航到包含 Red Hat build of Kogito 微服务的项目,并使用以下 curl 命令和 JSON 请求来与正在运行的微服务交互:
在 Spring Boot 上,您可能需要修改应用程序如何公开 API 端点,以便这些示例请求正常工作。如需更多信息,请参阅您为本教程创建的 Spring Boot 项目示例中包含的 README 文件。
添加一个dult 用户:
请求示例
curl -X POST http://localhost:8080/persons -H 'content-type: application/json' -H 'accept: application/json' -d '{"person": {"name":"John Quark", "age": 20}}'curl -X POST http://localhost:8080/persons -H 'content-type: application/json' -H 'accept: application/json' -d '{"person": {"name":"John Quark", "age": 20}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 响应示例
{"id":"3af806dd-8819-4734-a934-728f4c819682","person":{"name":"John Quark","age":20,"adult":false},"isAdult":true}{"id":"3af806dd-8819-4734-a934-728f4c819682","person":{"name":"John Quark","age":20,"adult":false},"isAdult":true}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加一个不足人:
请求示例
curl -X POST http://localhost:8080/persons -H 'content-type: application/json' -H 'accept: application/json' -d '{"person": {"name":"Jenny Quark", "age": 15}}'curl -X POST http://localhost:8080/persons -H 'content-type: application/json' -H 'accept: application/json' -d '{"person": {"name":"Jenny Quark", "age": 15}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 响应示例
{"id":"8eef502b-012b-4628-acb7-73418a089c08","person":{"name":"Jenny Quark","age":15,"adult":false},"isAdult":false}{"id":"8eef502b-012b-4628-acb7-73418a089c08","person":{"name":"Jenny Quark","age":15,"adult":false},"isAdult":false}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用返回的 UUID 完成评估:
请求示例
curl -X POST http://localhost:8080/persons/8eef502b-012b-4628-acb7-73418a089c08/ChildrenHandling/cdec4241-d676-47de-8c55-4ee4f9598bac -H 'content-type: application/json' -H 'accept: application/json' -d '{}'curl -X POST http://localhost:8080/persons/8eef502b-012b-4628-acb7-73418a089c08/ChildrenHandling/cdec4241-d676-47de-8c55-4ee4f9598bac -H 'content-type: application/json' -H 'accept: application/json' -d '{}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow