Я столкнулся с проблемой, связанной с Swagger и Java. Мой лектор прислал мне файл Swagger, из которого я должен создать REST API. Кроме того, этот REST API должен экспортировать ту же документацию Swagger, что и лекторы.
В определениях Сваггера я обнаружил, что должно быть создано 2 модели: нечетная (объект) и бет (массив). С нечетной моделью все в порядке, но я не нашел решения о том, как создать массив Bet. Если я просто создаю ArrayList с именем Bet в методе getOdd и помещаю все нечетные объекты внутрь, модель не будет создана.
Я искал решения, но мне это не удалось. Заранее спасибо.
Файл лектора Swagger:
swagger: "2.0"
info:
description: "Schema"
version: "1.0.0"
title: "API"
tags:
- name: "odds"
description: "Offer and return Odds"
schemes:
- "http"
paths:
/odds:
post:
tags:
- "odds"
summary: "Offer odds for a bet"
consumes:
- "application/json"
produces:
- "application/json"
parameters:
- in: "body"
name: "body"
description: "Odds that should be offered for a bet"
required: true
schema:
$ref: "#/definitions/Odds"
responses:
201:
description: "Odds have been created for bet"
400:
description: "Invalid format of Odds"
/odds/{betId}:
get:
tags:
- "odds"
summary: "Find Odds by Bet ID"
description: "Returns a list of odds for a given bet ID"
produces:
- "application/json"
parameters:
- name: "betId"
in: "path"
description: "ID of bet to return"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "Odds are returned for bet ID"
schema:
$ref: "#/definitions/Bet"
400:
description: "Invalid Bet ID supplied"
404:
description: "Bet not found for given ID"
definitions:
Odds:
type: "object"
properties:
betId:
type: "integer"
format: "int64"
userId:
type: "string"
description: "ID of user who is offering the odds"
odds:
type: "string"
example: "1/10"
**Bet:
type: "array"
items:
$ref: '#/definitions/Odds'**
Как должны выглядеть модели в Swagger
Как метод getOdd должен выглядеть как в Swagger
Я вставлю часть своей работы:
Как мои модели выглядят в Swagger
Как мой метод getOdd выглядит в Swagger
My Rest Controller:
@RestController
@RequestMapping("/api")
public class OddController {
@Autowired
OddRepository oddRepository;
@GetMapping("/odds/{betId}")
public Optional<Odd> getOdd(@PathVariable Long betId) {
Optional<Odd> theOdd=oddRepository.findById(betId);
return theOdd;
}
@PostMapping("/odds")
public Odd addOdd(@RequestBody Odd odd) {
odd.setBetId((long) 0);
oddRepository.save(odd);
return odd;
}
My Odd class:
@Entity
@Table(name="odds")
@Data
public class Odd {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="betid")
private Long betId;
@Column(name="userid")
private String userId;
@Column(name="odds")
private String odds;
}