Redundante Parameter für Endpunkte in Doku #8

Open
opened 2024-06-18 14:56:07 +02:00 by Daniel_Hassert · 0 comments
Member

Aktuell gibt es eine Reihe an Endpunkten mit der gleichen langen (und etwas unübersichtlichen) Liste an Parametern angeben:

parameters:
  - $ref: "#/components/parameters/GuidOnlineService"
  - $ref: "#/components/parameters/RequiredGuidMaterialType"
  - $ref: "#/components/parameters/RequiredGuidVehicleType"
  - $ref: "#/components/parameters/GuidWidth"
  - $ref: "#/components/parameters/GuidSection"
  - $ref: "#/components/parameters/GuidDiameter"
  - $ref: "#/components/parameters/GuidLoadIndex"
  - $ref: "#/components/parameters/GuidHoleCount"
  - $ref: "#/components/parameters/GuidHoleCircle"
  - $ref: "#/components/parameters/GuidOffset"
  - $ref: "#/components/parameters/GuidHubBoreHole"
  - $ref: "#/components/parameters/GuidManufacturer"

Vorschlag:

Statt einzelner Strings, übergeben wir ein Json Objekt mit den entsprechenden Informationen. Zum Beispiel:

"FilterParameter": {
  "GuidMaterialType": "",
  "GuidVehicleType": "",
  "GuidWidth": "",
  "GuidSection": "",
  "GuidDiameter": "",
  "GuidSpeedIndex": "",
  "GuidLoadIndex": "",
  "GuidHoleCount": "",
  "GuidHoleCircle": "",
  "GuidOffset": "",
  "GuidHubBoreHole": "",
  "GuidManufacturer": """
}

Oder, fällt mir gerade ein, wir nutzen das Model FilterOption aus dem anderen Issue-Post.

{
  "FilterOptions": [
    { "Guid": "", "Designation": "", "Type": "MaterialType"  },
    { "Guid": "", "Designation": "", "Type": "VehicleType"  },
    { "Guid": "", "Designation": "", "Type": "Width"  },
    { "Guid": "", "Designation": "", "Type": "Section"  },
    { "Guid": "", "Designation": "", "Type": "Diamter"  },
    { "Guid": "", "Designation": "", "Type": "SpeedIndex"  },
    { "Guid": "", "Designation": "", "Type": "LoadIndex"  },
    { "Guid": "", "Designation": "", "Type": "HoleCount"  },
    { "Guid": "", "Designation": "", "Type": "HoleCircle"  },
    { "Guid": "", "Designation": "", "Type": "Offset"  },
    { "Guid": "", "Designation": "", "Type": "HubBoreHole"  },
    { "Guid": "", "Designation": "", "Type": "Manufacturer"  }
  ]
}

bzw. kann auch nur eine Teilmenge geliefert werden.

{
  "FilterOptions": [
    { "Guid": "", "Designation": "", "Type": "MaterialType"  },
    { "Guid": "", "Designation": "", "Type": "VehicleType"  },
    { "Guid": "", "Designation": "", "Type": "Width"  },
    { "Guid": "", "Designation": "", "Type": "Section"  }
  ]
}

Wie bereits bemerkt, wird dann aus GET ein POST

Dann siehts in der Doku ungefähr so aus:

parameters:
- $ref: "#/components/parameters/GuidOnlineService"
requestBody:
  required: true
  content:
    application/json:
      schema:
        $ref: '#/components/schemas/FilterOptions'
Aktuell gibt es eine Reihe an Endpunkten mit der gleichen langen (und etwas unübersichtlichen) Liste an Parametern angeben: ```yaml parameters: - $ref: "#/components/parameters/GuidOnlineService" - $ref: "#/components/parameters/RequiredGuidMaterialType" - $ref: "#/components/parameters/RequiredGuidVehicleType" - $ref: "#/components/parameters/GuidWidth" - $ref: "#/components/parameters/GuidSection" - $ref: "#/components/parameters/GuidDiameter" - $ref: "#/components/parameters/GuidLoadIndex" - $ref: "#/components/parameters/GuidHoleCount" - $ref: "#/components/parameters/GuidHoleCircle" - $ref: "#/components/parameters/GuidOffset" - $ref: "#/components/parameters/GuidHubBoreHole" - $ref: "#/components/parameters/GuidManufacturer" ``` Vorschlag: Statt einzelner Strings, übergeben wir ein Json Objekt mit den entsprechenden Informationen. Zum Beispiel: ```json "FilterParameter": { "GuidMaterialType": "", "GuidVehicleType": "", "GuidWidth": "", "GuidSection": "", "GuidDiameter": "", "GuidSpeedIndex": "", "GuidLoadIndex": "", "GuidHoleCount": "", "GuidHoleCircle": "", "GuidOffset": "", "GuidHubBoreHole": "", "GuidManufacturer": """ } ``` Oder, fällt mir gerade ein, wir nutzen das Model `FilterOption` aus dem anderen Issue-Post. ```json { "FilterOptions": [ { "Guid": "", "Designation": "", "Type": "MaterialType" }, { "Guid": "", "Designation": "", "Type": "VehicleType" }, { "Guid": "", "Designation": "", "Type": "Width" }, { "Guid": "", "Designation": "", "Type": "Section" }, { "Guid": "", "Designation": "", "Type": "Diamter" }, { "Guid": "", "Designation": "", "Type": "SpeedIndex" }, { "Guid": "", "Designation": "", "Type": "LoadIndex" }, { "Guid": "", "Designation": "", "Type": "HoleCount" }, { "Guid": "", "Designation": "", "Type": "HoleCircle" }, { "Guid": "", "Designation": "", "Type": "Offset" }, { "Guid": "", "Designation": "", "Type": "HubBoreHole" }, { "Guid": "", "Designation": "", "Type": "Manufacturer" } ] } ``` bzw. kann auch nur eine Teilmenge geliefert werden. ```json { "FilterOptions": [ { "Guid": "", "Designation": "", "Type": "MaterialType" }, { "Guid": "", "Designation": "", "Type": "VehicleType" }, { "Guid": "", "Designation": "", "Type": "Width" }, { "Guid": "", "Designation": "", "Type": "Section" } ] } ``` Wie bereits bemerkt, wird dann aus `GET` ein `POST` Dann siehts in der Doku ungefähr so aus: ```yaml parameters: - $ref: "#/components/parameters/GuidOnlineService" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/FilterOptions' ```
Daniel_Hassert changed title from Redundante Parameter in Dokumentantion to Redundante Parameter für Endpunkte in Doku 2024-06-18 15:08:28 +02:00
Sign in to join this conversation.
No Milestone
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Reference: PRM_Software_AG/api-documentation#8
No description provided.