0

I use Google Cloud Build to build GCP Endpoints which relies on openapi-run.yaml to define the API. I have a large JSON schema file of which I want to refer to in the openapi-run.yaml:

  /testRef:
    get:
      summary: test for Reference
      operationId: testRef
      responses:
        '200':
          description: A successful response
          schema: 
            $ref: "/workspace/src/models/myLargeSchema.json#/Account"  

But when I run gcloud endpoints services deploy openapi-run.yaml --project myProject, it gives me an error saying "OpenAPI spec in file {openapi-run.yaml} is ill formed and cannot be parsed: Unable to load RELATIVE ref: /workspace/src/models/myLargeSchema.json"

I double-checked using ls command and confirm that the schema file is retrievable:

- name: 'gcr.io/cloud-builders/gcloud'
  entrypoint: 'bash'
  args: [ '-c', 'ls ./src/models -la']

Output

Step #0: drwxr-xr-x  2 501 dialout    4096 Jan 27 13:12 .
Step #0: drwxr-xr-x 15 501 dialout    4096 Dec  6 22:53 ..
Step #0: -rw-r--r--  1 501 dialout    2912 Dec 31 11:30 JSONSchemaValidator.ts
Step #0: -rw-r--r--  1 501 dialout 3370813 Jan 27 13:12 myLargeSchema.json
Step #0: -rw-r--r--  1 501 dialout     539 Dec 19 19:58 user.ts

Question How can I write my openapi-run.yaml so that it can refers to my JSON schema in another file?

Cupid Chan
  • 496
  • 4
  • 15
  • Here's an example https://cloud.google.com/deployment-manager/docs/configuration/templates/using-schemas#structure_of_a_schema – Ismail Feb 08 '21 at 21:08

2 Answers2

1

I have found out that calling for external references in NOT supporting in GCP Endpoints: https://cloud.google.com/endpoints/docs/openapi/openapi-limitations#external_type_references

Cupid Chan
  • 496
  • 4
  • 15
0

You are using an absolute filename, not a relative one. Try dropping the leading /workspace/ from the path in $ref.

Ether
  • 53,118
  • 13
  • 86
  • 159
  • I have found out that calling for external references in NOT supporting in GCP Endpoints: https://cloud.google.com/endpoints/docs/openapi/openapi-limitations#external_type_references – Cupid Chan Feb 11 '21 at 13:19