From a0c8bf9fba31156f1ad7f79dafa98d1f4462b220 Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Mon, 28 May 2018 14:21:21 -0700 Subject: move API spec to top level directory --- fatcat-openapi2.yml | 690 ++++++++++++++++++++++++++++++++++++++++ python/codegen_python_client.sh | 8 +- rust/codegen_openapi2.sh | 2 +- rust/fatcat-openapi2.yml | 690 ---------------------------------------- rust/src/bin/fatcatd.rs | 2 +- 5 files changed, 697 insertions(+), 695 deletions(-) create mode 100644 fatcat-openapi2.yml delete mode 100644 rust/fatcat-openapi2.yml diff --git a/fatcat-openapi2.yml b/fatcat-openapi2.yml new file mode 100644 index 00000000..8fcbf488 --- /dev/null +++ b/fatcat-openapi2.yml @@ -0,0 +1,690 @@ +--- +swagger: "2.0" +info: + title: fatcat + description: A scalable, versioned, API-oriented catalog of bibliographic entities + and file metadata + version: 0.1.0 +schemes: [http] +basePath: /v0 +#host: api.fatcat.wiki +consumes: + - application/json +produces: + - application/json + + +# Common properties across entities +x-entity-props: &ENTITYPROPS + state: + type: string + enum: ["wip", "active", "redirect", "deleted"] + ident: + type: string + #format: uuid + example: "f1f046a3-45c9-4b99-adce-000000000001" + revision: + type: integer + example: 42 + format: int64 + redirect: + type: string + #format: uuid + example: "f1f046a3-45c9-4b99-adce-000000000002" + editgroup_id: + type: integer + example: 16 + format: int64 + extra: + type: object + additionalProperties: {} + + +definitions: + error_response: + type: object + required: + - message + properties: + message: + type: string + example: "A really confusing, totally unexpected thing happened" + success: + type: object + required: + - message + properties: + message: + type: string + example: "The computers did the thing successfully!" + container_entity: + type: object + required: + - name + properties: + <<: *ENTITYPROPS + name: + type: string + example: "Journal of Important Results" + publisher: + type: string + example: "Society of Curious Students" + issnl: + type: string + #format: custom + example: "1234-5678" + abbrev: + type: string + coden: + type: string + creator_entity: + type: object + required: + - full_name + properties: + <<: *ENTITYPROPS + full_name: + type: string + example: "Grace Hopper" + orcid: + type: string + #format: custom + example: "0000-0002-1825-0097" + file_entity: + type: object + properties: + <<: *ENTITYPROPS + size: + type: integer + example: 1048576 + format: int64 + sha1: + type: string + #format: custom + example: "f013d66c7f6817d08b7eb2a93e6d0440c1f3e7f8" + md5: + type: string + #format: custom + example: "d41efcc592d1e40ac13905377399eb9b" + url: + type: string + format: url + example: "https://example.edu/~frau/prcding.pdf" + releases: + type: array + items: + type: string + #format: uuid + release_entity: + type: object + required: + - title + - work_id + properties: + <<: *ENTITYPROPS + title: + type: string + work_id: + type: string + example: "f1f046a3-45c9-4b99-adce-000000000001" + container_id: + type: string + example: "f1f046a3-45c9-4b99-adce-000000000001" + release_type: + type: string + example: "preprint" + date: + type: string + format: date + doi: + type: string + #format: custom + example: "10.1234/abcde.789" + isbn13: + type: string + #format: custom + volume: + type: string + pages: + type: string + issue: + type: string + example: "12" + publisher: + type: string + contribs: + type: array + items: + $ref: "#/definitions/release_contrib" + refs: + type: array + items: + $ref: "#/definitions/release_ref" + work_entity: + type: object + properties: + <<: *ENTITYPROPS + work_type: + type: string + entity_edit: + type: object + required: + - edit_id + - ident + - editgroup_id + properties: + edit_id: + type: integer + example: 847 + format: int64 + ident: + type: string + example: "f1f046a3-45c9-4b99-adce-000000000001" + revision: + type: integer + example: 42 + format: int64 + redirect_ident: + type: string + example: "f1f046a3-45c9-4b99-adce-000000000002" + #format: uuid + editgroup_id: + type: integer + example: 16 + format: int64 + extra: + type: object + additionalProperties: {} + editor: + type: object + required: + - username + properties: + username: + type: string + example: "zerocool93" + editgroup: + type: object + required: + - editor_id + properties: + id: + type: integer + format: int64 + editor_id: + type: integer + format: int64 + description: + type: string + extra: + type: object + additionalProperties: {} + edits: + type: object + properties: + containers: + type: array + items: + $ref: "#/definitions/entity_edit" + creators: + type: array + items: + $ref: "#/definitions/entity_edit" + files: + type: array + items: + $ref: "#/definitions/entity_edit" + releases: + type: array + items: + $ref: "#/definitions/entity_edit" + works: + type: array + items: + $ref: "#/definitions/entity_edit" + changelogentries: + type: array + items: + type: object + required: + - index + - editgroup_id + - timestamp + properties: + index: + type: integer + format: int64 + editgroup_id: + type: integer + format: int64 + timestamp: + type: string + format: date-time + release_ref: + type: object + properties: + index: + type: integer + format: int64 + target_release_id: + type: string + #format: uuid + stub: + type: string + release_contrib: + type: object + properties: + index: + type: integer + format: int64 + creator_id: + type: string + #format: uuid + creator_stub: + type: string + role: + type: string + +x-entity-responses: &ENTITYRESPONSES + 400: + description: Bad Request + schema: + $ref: "#/definitions/error_response" + 404: + description: Not Found + schema: + $ref: "#/definitions/error_response" + default: + description: Generic Error + schema: + $ref: "#/definitions/error_response" + +paths: + /container: + post: + parameters: + - name: entity + in: body + required: true + schema: + $ref: "#/definitions/container_entity" + responses: + 201: + description: Created Entity + schema: + $ref: "#/definitions/entity_edit" + <<: *ENTITYRESPONSES + /container/batch: + post: + parameters: + - name: entity_list + in: body + required: true + schema: + type: array + items: + $ref: "#/definitions/container_entity" + responses: + 201: + description: Created Entities + schema: + type: array + items: + $ref: "#/definitions/entity_edit" + <<: *ENTITYRESPONSES + /container/{id}: + parameters: + - name: id + in: path + type: string + required: true + get: + responses: + 200: + description: Found Entity + schema: + $ref: "#/definitions/container_entity" + <<: *ENTITYRESPONSES + /container/lookup: + get: + parameters: + - name: issnl + in: query + type: string + required: true + responses: + 200: + description: Found Entity + schema: + $ref: "#/definitions/container_entity" + <<: *ENTITYRESPONSES + /creator: + post: + parameters: + - name: entity + in: body + required: true + schema: + $ref: "#/definitions/creator_entity" + responses: + 201: + description: Created Entity + schema: + $ref: "#/definitions/entity_edit" + <<: *ENTITYRESPONSES + /creator/batch: + post: + parameters: + - name: entity_list + in: body + required: true + schema: + type: array + items: + $ref: "#/definitions/creator_entity" + responses: + 201: + description: Created Entities + schema: + type: array + items: + $ref: "#/definitions/entity_edit" + <<: *ENTITYRESPONSES + /creator/{id}: + parameters: + - name: id + in: path + type: string + required: true + get: + responses: + 200: + description: Found Entity + schema: + $ref: "#/definitions/creator_entity" + <<: *ENTITYRESPONSES + /creator/lookup: + get: + parameters: + - name: orcid + in: query + type: string + required: true + responses: + 200: + description: Found Entity + schema: + $ref: "#/definitions/creator_entity" + <<: *ENTITYRESPONSES + /file: + post: + parameters: + - name: entity + in: body + required: true + schema: + $ref: "#/definitions/file_entity" + responses: + 201: + description: Created Entity + schema: + $ref: "#/definitions/entity_edit" + <<: *ENTITYRESPONSES + /file/batch: + post: + parameters: + - name: entity_list + in: body + required: true + schema: + type: array + items: + $ref: "#/definitions/file_entity" + responses: + 201: + description: Created Entities + schema: + type: array + items: + $ref: "#/definitions/entity_edit" + <<: *ENTITYRESPONSES + /file/{id}: + parameters: + - name: id + in: path + type: string + required: true + get: + responses: + 200: + description: Found Entity + schema: + $ref: "#/definitions/file_entity" + <<: *ENTITYRESPONSES + /file/lookup: + get: + parameters: + - name: sha1 + in: query + type: string + required: true + responses: + 200: + description: Found Entity + schema: + $ref: "#/definitions/file_entity" + <<: *ENTITYRESPONSES + /release: + post: + parameters: + - name: entity + in: body + required: true + schema: + $ref: "#/definitions/release_entity" + responses: + 201: + description: Created Entity + schema: + $ref: "#/definitions/entity_edit" + <<: *ENTITYRESPONSES + /release/batch: + post: + parameters: + - name: entity_list + in: body + required: true + schema: + type: array + items: + $ref: "#/definitions/release_entity" + responses: + 201: + description: Created Entities + schema: + type: array + items: + $ref: "#/definitions/entity_edit" + <<: *ENTITYRESPONSES + /release/{id}: + parameters: + - name: id + in: path + type: string + required: true + get: + responses: + 200: + description: Found Entity + schema: + $ref: "#/definitions/release_entity" + <<: *ENTITYRESPONSES + /release/lookup: + get: + parameters: + - name: doi + in: query + type: string + required: true + responses: + 200: + description: Found Entity + schema: + $ref: "#/definitions/release_entity" + <<: *ENTITYRESPONSES + /work: + post: + parameters: + - name: entity + in: body + required: true + schema: + $ref: "#/definitions/work_entity" + responses: + 201: + description: Created Entity + schema: + $ref: "#/definitions/entity_edit" + <<: *ENTITYRESPONSES + /work/batch: + post: + parameters: + - name: entity_list + in: body + required: true + schema: + type: array + items: + $ref: "#/definitions/work_entity" + responses: + 201: + description: Created Entities + schema: + type: array + items: + $ref: "#/definitions/entity_edit" + <<: *ENTITYRESPONSES + /work/{id}: + parameters: + - name: id + in: path + type: string + required: true + get: + responses: + 200: + description: Found Entity + schema: + $ref: "#/definitions/work_entity" + <<: *ENTITYRESPONSES + /editor/{username}: + parameters: + - name: username + in: path + type: string + required: true + get: + responses: + 200: + description: Found Editor + schema: + $ref: "#/definitions/editor" + 404: + description: Not Found + schema: + $ref: "#/definitions/error_response" + default: + description: Generic Error + schema: + $ref: "#/definitions/error_response" + /editor/{username}/changelog: + parameters: + - name: username + in: path + type: string + required: true + get: + responses: + 200: + description: Found Merged Changes + schema: + $ref: "#/definitions/changelogentries" + 404: + description: Not Found + schema: + $ref: "#/definitions/error_response" + default: + description: Generic Error + schema: + $ref: "#/definitions/error_response" + /editgroup: + post: + parameters: + - name: entity + in: body + required: true + schema: + $ref: "#/definitions/editgroup" + responses: + 201: + description: Successfully Created + schema: + $ref: "#/definitions/editgroup" + 400: + description: Bad Request + schema: + $ref: "#/definitions/error_response" + default: + description: Generic Error + schema: + $ref: "#/definitions/error_response" + /editgroup/{id}: + parameters: + - name: id + in: path + type: integer + format: int64 + required: true + get: + responses: + 200: + description: Found Entity + schema: + $ref: "#/definitions/editgroup" + 400: + description: Bad Request + schema: + $ref: "#/definitions/error_response" + 404: + description: Not Found + schema: + $ref: "#/definitions/error_response" + default: + description: Generic Error + schema: + $ref: "#/definitions/error_response" + /editgroup/{id}/accept: + parameters: + - name: id + in: path + type: integer + format: int64 + required: true + post: + responses: + 200: + description: Merged Successfully + schema: + $ref: "#/definitions/success" + 400: + description: Unmergable + schema: + $ref: "#/definitions/error_response" + 404: + description: Not Found + schema: + $ref: "#/definitions/error_response" + default: + description: Generic Error + schema: + $ref: "#/definitions/error_response" diff --git a/python/codegen_python_client.sh b/python/codegen_python_client.sh index 7824253d..ba9bb3d3 100755 --- a/python/codegen_python_client.sh +++ b/python/codegen_python_client.sh @@ -1,10 +1,11 @@ -#!/bin/sh +#!/bin/bash -set -ex +set -exu +set -o pipefail OUTPUT=`pwd`/codegen-out mkdir -p $OUTPUT -cp ../rust/fatcat-openapi2.yml $OUTPUT/api.yml +cp ../fatcat-openapi2.yml $OUTPUT/api.yml docker run \ -v $OUTPUT:/tmp/swagger/ \ @@ -18,3 +19,4 @@ docker run \ sudo chown -R `whoami`:`whoami` $OUTPUT cp -r $OUTPUT/fatcat_client fatcat_client cp -r $OUTPUT/test tests/codegen_tests +#rm -rf $OUTPUT diff --git a/rust/codegen_openapi2.sh b/rust/codegen_openapi2.sh index a6826148..6dbb087d 100755 --- a/rust/codegen_openapi2.sh +++ b/rust/codegen_openapi2.sh @@ -1,6 +1,6 @@ #!/bin/sh -cargo swagger fatcat-openapi2.yml fatcat-api --docker-tag=v2.3.1 +cargo swagger ../fatcat-openapi2.yml fatcat-api --docker-tag=v2.3.1 sudo chown `whoami`:`whoami` -R fatcat-api git checkout fatcat-api/Cargo.toml diff --git a/rust/fatcat-openapi2.yml b/rust/fatcat-openapi2.yml deleted file mode 100644 index 8fcbf488..00000000 --- a/rust/fatcat-openapi2.yml +++ /dev/null @@ -1,690 +0,0 @@ ---- -swagger: "2.0" -info: - title: fatcat - description: A scalable, versioned, API-oriented catalog of bibliographic entities - and file metadata - version: 0.1.0 -schemes: [http] -basePath: /v0 -#host: api.fatcat.wiki -consumes: - - application/json -produces: - - application/json - - -# Common properties across entities -x-entity-props: &ENTITYPROPS - state: - type: string - enum: ["wip", "active", "redirect", "deleted"] - ident: - type: string - #format: uuid - example: "f1f046a3-45c9-4b99-adce-000000000001" - revision: - type: integer - example: 42 - format: int64 - redirect: - type: string - #format: uuid - example: "f1f046a3-45c9-4b99-adce-000000000002" - editgroup_id: - type: integer - example: 16 - format: int64 - extra: - type: object - additionalProperties: {} - - -definitions: - error_response: - type: object - required: - - message - properties: - message: - type: string - example: "A really confusing, totally unexpected thing happened" - success: - type: object - required: - - message - properties: - message: - type: string - example: "The computers did the thing successfully!" - container_entity: - type: object - required: - - name - properties: - <<: *ENTITYPROPS - name: - type: string - example: "Journal of Important Results" - publisher: - type: string - example: "Society of Curious Students" - issnl: - type: string - #format: custom - example: "1234-5678" - abbrev: - type: string - coden: - type: string - creator_entity: - type: object - required: - - full_name - properties: - <<: *ENTITYPROPS - full_name: - type: string - example: "Grace Hopper" - orcid: - type: string - #format: custom - example: "0000-0002-1825-0097" - file_entity: - type: object - properties: - <<: *ENTITYPROPS - size: - type: integer - example: 1048576 - format: int64 - sha1: - type: string - #format: custom - example: "f013d66c7f6817d08b7eb2a93e6d0440c1f3e7f8" - md5: - type: string - #format: custom - example: "d41efcc592d1e40ac13905377399eb9b" - url: - type: string - format: url - example: "https://example.edu/~frau/prcding.pdf" - releases: - type: array - items: - type: string - #format: uuid - release_entity: - type: object - required: - - title - - work_id - properties: - <<: *ENTITYPROPS - title: - type: string - work_id: - type: string - example: "f1f046a3-45c9-4b99-adce-000000000001" - container_id: - type: string - example: "f1f046a3-45c9-4b99-adce-000000000001" - release_type: - type: string - example: "preprint" - date: - type: string - format: date - doi: - type: string - #format: custom - example: "10.1234/abcde.789" - isbn13: - type: string - #format: custom - volume: - type: string - pages: - type: string - issue: - type: string - example: "12" - publisher: - type: string - contribs: - type: array - items: - $ref: "#/definitions/release_contrib" - refs: - type: array - items: - $ref: "#/definitions/release_ref" - work_entity: - type: object - properties: - <<: *ENTITYPROPS - work_type: - type: string - entity_edit: - type: object - required: - - edit_id - - ident - - editgroup_id - properties: - edit_id: - type: integer - example: 847 - format: int64 - ident: - type: string - example: "f1f046a3-45c9-4b99-adce-000000000001" - revision: - type: integer - example: 42 - format: int64 - redirect_ident: - type: string - example: "f1f046a3-45c9-4b99-adce-000000000002" - #format: uuid - editgroup_id: - type: integer - example: 16 - format: int64 - extra: - type: object - additionalProperties: {} - editor: - type: object - required: - - username - properties: - username: - type: string - example: "zerocool93" - editgroup: - type: object - required: - - editor_id - properties: - id: - type: integer - format: int64 - editor_id: - type: integer - format: int64 - description: - type: string - extra: - type: object - additionalProperties: {} - edits: - type: object - properties: - containers: - type: array - items: - $ref: "#/definitions/entity_edit" - creators: - type: array - items: - $ref: "#/definitions/entity_edit" - files: - type: array - items: - $ref: "#/definitions/entity_edit" - releases: - type: array - items: - $ref: "#/definitions/entity_edit" - works: - type: array - items: - $ref: "#/definitions/entity_edit" - changelogentries: - type: array - items: - type: object - required: - - index - - editgroup_id - - timestamp - properties: - index: - type: integer - format: int64 - editgroup_id: - type: integer - format: int64 - timestamp: - type: string - format: date-time - release_ref: - type: object - properties: - index: - type: integer - format: int64 - target_release_id: - type: string - #format: uuid - stub: - type: string - release_contrib: - type: object - properties: - index: - type: integer - format: int64 - creator_id: - type: string - #format: uuid - creator_stub: - type: string - role: - type: string - -x-entity-responses: &ENTITYRESPONSES - 400: - description: Bad Request - schema: - $ref: "#/definitions/error_response" - 404: - description: Not Found - schema: - $ref: "#/definitions/error_response" - default: - description: Generic Error - schema: - $ref: "#/definitions/error_response" - -paths: - /container: - post: - parameters: - - name: entity - in: body - required: true - schema: - $ref: "#/definitions/container_entity" - responses: - 201: - description: Created Entity - schema: - $ref: "#/definitions/entity_edit" - <<: *ENTITYRESPONSES - /container/batch: - post: - parameters: - - name: entity_list - in: body - required: true - schema: - type: array - items: - $ref: "#/definitions/container_entity" - responses: - 201: - description: Created Entities - schema: - type: array - items: - $ref: "#/definitions/entity_edit" - <<: *ENTITYRESPONSES - /container/{id}: - parameters: - - name: id - in: path - type: string - required: true - get: - responses: - 200: - description: Found Entity - schema: - $ref: "#/definitions/container_entity" - <<: *ENTITYRESPONSES - /container/lookup: - get: - parameters: - - name: issnl - in: query - type: string - required: true - responses: - 200: - description: Found Entity - schema: - $ref: "#/definitions/container_entity" - <<: *ENTITYRESPONSES - /creator: - post: - parameters: - - name: entity - in: body - required: true - schema: - $ref: "#/definitions/creator_entity" - responses: - 201: - description: Created Entity - schema: - $ref: "#/definitions/entity_edit" - <<: *ENTITYRESPONSES - /creator/batch: - post: - parameters: - - name: entity_list - in: body - required: true - schema: - type: array - items: - $ref: "#/definitions/creator_entity" - responses: - 201: - description: Created Entities - schema: - type: array - items: - $ref: "#/definitions/entity_edit" - <<: *ENTITYRESPONSES - /creator/{id}: - parameters: - - name: id - in: path - type: string - required: true - get: - responses: - 200: - description: Found Entity - schema: - $ref: "#/definitions/creator_entity" - <<: *ENTITYRESPONSES - /creator/lookup: - get: - parameters: - - name: orcid - in: query - type: string - required: true - responses: - 200: - description: Found Entity - schema: - $ref: "#/definitions/creator_entity" - <<: *ENTITYRESPONSES - /file: - post: - parameters: - - name: entity - in: body - required: true - schema: - $ref: "#/definitions/file_entity" - responses: - 201: - description: Created Entity - schema: - $ref: "#/definitions/entity_edit" - <<: *ENTITYRESPONSES - /file/batch: - post: - parameters: - - name: entity_list - in: body - required: true - schema: - type: array - items: - $ref: "#/definitions/file_entity" - responses: - 201: - description: Created Entities - schema: - type: array - items: - $ref: "#/definitions/entity_edit" - <<: *ENTITYRESPONSES - /file/{id}: - parameters: - - name: id - in: path - type: string - required: true - get: - responses: - 200: - description: Found Entity - schema: - $ref: "#/definitions/file_entity" - <<: *ENTITYRESPONSES - /file/lookup: - get: - parameters: - - name: sha1 - in: query - type: string - required: true - responses: - 200: - description: Found Entity - schema: - $ref: "#/definitions/file_entity" - <<: *ENTITYRESPONSES - /release: - post: - parameters: - - name: entity - in: body - required: true - schema: - $ref: "#/definitions/release_entity" - responses: - 201: - description: Created Entity - schema: - $ref: "#/definitions/entity_edit" - <<: *ENTITYRESPONSES - /release/batch: - post: - parameters: - - name: entity_list - in: body - required: true - schema: - type: array - items: - $ref: "#/definitions/release_entity" - responses: - 201: - description: Created Entities - schema: - type: array - items: - $ref: "#/definitions/entity_edit" - <<: *ENTITYRESPONSES - /release/{id}: - parameters: - - name: id - in: path - type: string - required: true - get: - responses: - 200: - description: Found Entity - schema: - $ref: "#/definitions/release_entity" - <<: *ENTITYRESPONSES - /release/lookup: - get: - parameters: - - name: doi - in: query - type: string - required: true - responses: - 200: - description: Found Entity - schema: - $ref: "#/definitions/release_entity" - <<: *ENTITYRESPONSES - /work: - post: - parameters: - - name: entity - in: body - required: true - schema: - $ref: "#/definitions/work_entity" - responses: - 201: - description: Created Entity - schema: - $ref: "#/definitions/entity_edit" - <<: *ENTITYRESPONSES - /work/batch: - post: - parameters: - - name: entity_list - in: body - required: true - schema: - type: array - items: - $ref: "#/definitions/work_entity" - responses: - 201: - description: Created Entities - schema: - type: array - items: - $ref: "#/definitions/entity_edit" - <<: *ENTITYRESPONSES - /work/{id}: - parameters: - - name: id - in: path - type: string - required: true - get: - responses: - 200: - description: Found Entity - schema: - $ref: "#/definitions/work_entity" - <<: *ENTITYRESPONSES - /editor/{username}: - parameters: - - name: username - in: path - type: string - required: true - get: - responses: - 200: - description: Found Editor - schema: - $ref: "#/definitions/editor" - 404: - description: Not Found - schema: - $ref: "#/definitions/error_response" - default: - description: Generic Error - schema: - $ref: "#/definitions/error_response" - /editor/{username}/changelog: - parameters: - - name: username - in: path - type: string - required: true - get: - responses: - 200: - description: Found Merged Changes - schema: - $ref: "#/definitions/changelogentries" - 404: - description: Not Found - schema: - $ref: "#/definitions/error_response" - default: - description: Generic Error - schema: - $ref: "#/definitions/error_response" - /editgroup: - post: - parameters: - - name: entity - in: body - required: true - schema: - $ref: "#/definitions/editgroup" - responses: - 201: - description: Successfully Created - schema: - $ref: "#/definitions/editgroup" - 400: - description: Bad Request - schema: - $ref: "#/definitions/error_response" - default: - description: Generic Error - schema: - $ref: "#/definitions/error_response" - /editgroup/{id}: - parameters: - - name: id - in: path - type: integer - format: int64 - required: true - get: - responses: - 200: - description: Found Entity - schema: - $ref: "#/definitions/editgroup" - 400: - description: Bad Request - schema: - $ref: "#/definitions/error_response" - 404: - description: Not Found - schema: - $ref: "#/definitions/error_response" - default: - description: Generic Error - schema: - $ref: "#/definitions/error_response" - /editgroup/{id}/accept: - parameters: - - name: id - in: path - type: integer - format: int64 - required: true - post: - responses: - 200: - description: Merged Successfully - schema: - $ref: "#/definitions/success" - 400: - description: Unmergable - schema: - $ref: "#/definitions/error_response" - 404: - description: Not Found - schema: - $ref: "#/definitions/error_response" - default: - description: Generic Error - schema: - $ref: "#/definitions/error_response" diff --git a/rust/src/bin/fatcatd.rs b/rust/src/bin/fatcatd.rs index b50da2be..256027c8 100644 --- a/rust/src/bin/fatcatd.rs +++ b/rust/src/bin/fatcatd.rs @@ -66,7 +66,7 @@ fn main() { fn yaml_handler(_: &mut Request) -> IronResult { Ok(Response::with(( status::Ok, - include_str!("../../fatcat-openapi2.yml"), + include_str!("../../../fatcat-openapi2.yml"), ))) } -- cgit v1.2.3