OpenAPITools / OpenAPITools/openapi-diff

References are not resolved according to RFC3986

Offen
#272 5 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

@joschi arbeitet bereits daran.

Seit 15.6.2024.

  • #271 von @hiddewie — ohne Merge geschlossen
  • #676 von @joschi — offen
enhancement
Vorherrschende Sprache
Java
Sterne
1.1k
Forks
190
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

See the specification here: https://swagger.io/docs/specification/using-ref/.
This points to RFC3986 (https://tools.ietf.org/html/rfc3986) for the structure of JSON references. This RFC is not supported in openapi-diff.

I made an example of a valid reference according to OpenAPI 3, for which OpenAPI diff throws an error. See https://github.com/OpenAPITools/openapi-diff/pull/271

Example content:

openapi: 3.0.1
info:
  title: Service
  description: test
  version: test
  contact:
    name: test
    url: 'test'
servers:
  - url: 'localhost'
paths:
  /feature:
    get:
      summary: Get feature state
      operationId: feature
      description: Gets feature
      parameters:
        - name: feature
          in: query
          schema:
            $ref: '#/components/schemas/Feature/properties/feature'    # <---- this
          required: true
      responses:
        '200':
          description: Found feature
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Feature'
components:
  schemas:
    Feature:
      type: object
      properties:
        feature:
          type: string
          enum:
            - alpha
            - beta
        value:
          type: boolean
      required:
        - feature
        - value

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginnen Sie mit dem bereitgestellten OpenAPI-Beispiel und vergleichen Sie dessen RFC3986-Referenz mit dem Resolver-Verhalten in openapi-diff. Prüfen Sie die verlinkte Spezifikation und bestehende Pull Requests und verifizieren Sie anschließend, dass die Property-Referenz ohne Fehler akzeptiert wird und die bestehende Referenzverarbeitung weiterhin korrekt funktioniert.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
api
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.