Java Весенний отдых и чванство - PullRequest
1 голос
/ 15 марта 2020

Я столкнулся с проблемой, связанной с 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;

}

1 Ответ

0 голосов
/ 15 марта 2020

Вы можете использовать аннотации для управления генерацией определений чванства. Для этого есть старый и новый API:

В файле чванства лекции используется «swagger:« 2.0 »». Поэтому это будет старый. В новом файле создаются файлы подкачки для OpenApi 3.0.

Специально аннотации @ ApiOperation и @ ApiModelOperation могут быть интересны для решения вашей проблемы.

См. Также JavaDo c:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...