#spring #spring-boot #swagger #spring-hateoas
Вопрос:
Я пытаюсь реализовать HATEOAS на текущей конечной точке Rest в проекте Spring boot. В проекте используется модель swagger для объекта запроса и ответа.
/order/findAllOrders:
get:
tags:
- "orders"
summary: "Finds Orders by status"
description: "Multiple Orders"
operationId: "findAllOrders"
produces:
- "application/xml"
- "application/json"
parameters:
- name: "status"
in: "query"
description: "Status values that need to be considered for filter"
required: true
type: "array"
items:
type: "string"
enum:
- "wip"
- "pending"
- "completed"
default: "completed"
responses:
"200":
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/OrderCollection"
"400":
description: "Invalid status value"
......
.....
definitions:
Order:
type: "object"
properties:
orderId:
type: "integer"
format: "int64"
orderItem:
type: "String"
description: "order item"
....
....
OrderCollection:
type: "object"
properties:
orders:
type: array
items:
$ref: "#/definitions/Order"
....
....
Конечная точка Rest в настоящее время возвращает следующий объект(рассмотрим, например):
OrderCollection {
String param1;
String param2;
String param3;
List<Order> orders;
}
Order {
String orderId;
String orderItem;
......
......
}
Я хочу добавить ссылку на каждый заказ, для этого я должен расширить модель представления.
Порядок объектов и коллекция заказов уже созданы с помощью swagger.
В настоящее время я мог думать только о создании дубликатов классов объектов для
OrderLink extends RepresentationModel<OrderLink > {
String Order;/**--- Order object from Swagger-----*/
....
}
OrderLinkCollection {
String param1;
String param2;
String param3;
List<OrderLink> orderLinks;
}
Есть ли элегантный способ справиться с этим без создания дубликатов классов объектов? Могу ли я расширить объекты из библиотеки spring lib до API swagger?