According to OpenAPI spec, Path Item Object’s parameters
must be an array of [Parameter Object | Reference Object]
,
however ChatGPT plugin loader cannot parse OpenAPI yaml using Reference Object
(i.e. the $ref: '...'
syntax) in that field.
Example:
openapi: 3.0.3
info:
title: ...
description: ...
version: v1
servers:
- url: ... [links not allowed]
paths:
/api/v1/test/{testid}/run:
post:
operationId: runTest
summary: |-
Does something.
parameters:
- $ref: '#/components/parameters/testId'
requestBody:
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/empty'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/empty'
components:
parameters:
testId:
in: path
name: testid
schema:
type: string
required: true
description: |-
The unique id of the test.
schemas:
empty:
type: object
properties: {}
The API validates and properly interprets $ref: '#/components/parameters/testId'
using Swagger Editor,
however when loaded by as ChatGPT plugin, the developer tools report parsing error:
Warnings in OpenAPI spec
In path /api/v1/test/{testid}/run, method post, operationId runTest, parameter {'$ref': '#/components/parameters/testId'} is has missing or non-string name; skipping
In path /api/v1/test/{testid}/run, method post, operationId runTest, skipping function due to errors