University of Chicago graphql API

GraphQL Queries

OpenAPI Specification

university-of-chicago-graphql-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Fence OpenAPI Specification admin/user graphql API
  version: 0.1.0
  description: Access management for Gen3 data commons. Code is available on [GitHub](https://github.com/uc-cdis/fence).
  termsOfService: http://cdis.uchicago.edu/terms/
  contact:
    email: cdis@uchicago.edu
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: https://example.domain/
tags:
- name: graphql
  description: GraphQL Queries
paths:
  /graphql:
    post:
      tags:
      - graphql
      summary: Perform a GraphQL Query
      description: Perform a graphql query over the data commons given a query, variables, and name.
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QueryOutputRef'
        '400':
          description: Invalid input
        '403':
          description: Invalid authorization token
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QueryInputInfo'
        description: The GraphQL query and parameters
        required: true
  /getschema:
    get:
      tags:
      - graphql
      summary: Returns the data dictionary schema json
      description: The data dictionary for the data commons is internally converted from yaml files to json. This endpoint returns the json schema for the dictionary for use in generating queries.
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaOutputRef'
components:
  schemas:
    QueryInputInfo:
      type: object
      properties:
        query:
          type: string
          description: the text of the GraphQL query
        variables:
          type: string
          description: variables for the GraphQL query
        operationName:
          type: string
          description: the name of the operation
      example:
        query: '{ project {project_id} }'
        operationName: null
        variables: null
    SchemaOutputRef:
      type: object
      properties:
        data:
          type: object
          description: the json schema for the data dictionary
    QueryOutputRef:
      type: object
      properties:
        data:
          type: object
          description: the results of the GraphQL query
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: /oauth/authorize
          tokenUrl: /oauth/token
          scopes:
            user: generic user access