Расширение правил с помощью SPectral - PullRequest
0 голосов
/ 30 сентября 2019

Я следую документации Spectral и пытаюсь добавить свое пользовательское правило как расширение к oas3 правилу, похоже, что правило из документации полностью игнорируется.

МойСпецификационный файл OpenApi 3.0:

openapi: 3.0.2
info:
  title: Project info
  description: |
    Project description
  contact:
    name: Test Testable
    email: test@test.test
  version: 1.0.0
servers:
- url: http://localhost:8080
tags:
- name: test-tag
paths:
  /test:
    get:
      tags:
      - test-tag
      summary: Some summary
      operationId: operationId
      description: Operation description
      responses:
        200:
          description: OKK

Мой .spectral.yml файл:

extends: spectral:oas3
rules:
  my-rule-name:
    description: Tags must have a description.
    given: $.tags[*]
    then:
      field: description
      function: truthy

Моя спецификация API содержит tags, но тег, который там есть, не имеет описания, поэтомудолжен произойти сбой, но это не так:

>spectral lint api.yml

OpenAPI 3.x detected
No errors or warnings found!

Даже если я попытаюсь изменить значение на function: falsy, которое, как я ожидаю, должно произойти сбой в одном из этих двух случаев - все равно никаких предупреждений и ошибок. Похоже, что это правило просто не применяется.

1 Ответ

0 голосов
/ 02 октября 2019

Я нашел это. В определении правила необходимо поле recommended: true. Документация упоминает об этом, но как-то слишком кратко:

Обновлено .spectral.yml:

extends: spectral:oas3
rules:
  my-rule-name:
    description: Tags must have a description.
    given: $.tags[*]
    recommended: true
    then:
      field: description
      function: truthy

и вывод:

13:3  warning  my-rule-name  Tags must have a description.

✖ 1 problem (0 errors, 1 warning, 0 infos)
...