Technical University of Munich static API

Static information regarding canteens, labels and languages

OpenAPI Specification

tum-static-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: eat-api calendar static API
  version: '2.1'
  description: Simple static API for some (student) food places in Munich.
servers:
- url: https://tum-dev.github.io/eat-api/{language}
  variables:
    language:
      description: For localization the base path may have to be extended by the language.
      default: ''
      enum:
      - ''
      - en/
tags:
- name: static
  description: Static information regarding canteens, labels and languages
paths:
  /enums/canteens.json:
    get:
      summary: To get all available canteens
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Canteen'
      tags:
      - static
  /enums/languages.json:
    get:
      summary: To get all available languages
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Language'
      tags:
      - static
  /enums/labels.json:
    get:
      summary: To get all available labels
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Label'
      tags:
      - static
components:
  schemas:
    Location:
      type: object
      description: A location description including the readable address and coordinates
      properties:
        address:
          type: string
          description: Readable address consisting of street, house number and city
          example: Boltzmannstraße 19, Garching
        latitude:
          type: number
          example: 48.268132
        longitude:
          type: number
          example: 11.672263
    OpenHoursDay:
      type: object
      description: Specifies, a time range for opening hours. The times always have the format
      properties:
        start:
          type: string
          pattern: ^\d{2}:\d{2}
          example: 660
        end:
          type: string
          pattern: ^\d{2}:\d{2}
          example: 840
    Canteen:
      type: object
      description: Information about a canteen
      properties:
        enum_name:
          type: string
          description: Internal identifier for a canteen
          example: MENSA_GARCHING
        name:
          type: string
          description: Readable name for a canteen
          example: Mensa Garching
        location:
          $ref: '#/components/schemas/Location'
        canteen_id:
          type: string
          description: Identifier for the canteen, as it has to be used for accessing data.
          example: mensa-garching
        queue_status:
          type: string
          description: URL to another API, where data about the queue length of the canteen can be accessed. Is null, when not available.
          example: https://mensa.liste.party/api/
        open_hours:
          $ref: '#/components/schemas/OpenHoursWeek'
    Language:
      type: object
      description: A language, that is supported by the API
      properties:
        name:
          type: string
          description: Identifier of the language
          example: EN
        base_url:
          type: string
          description: Additional base path that is appended to the base url, in order to access data for this language. Due to backwards compatibility resons the base_url for german is an empty string.
          example: en/
        label:
          type: string
          description: Readable name of the language in the given language
          example: English
        flag:
          type: string
          description: Emoji flag symbol for the language
          example: 🏴󠁧󠁢󠁥󠁮󠁧󠁿
    OpenHoursWeek:
      type: object
      description: Specifies the opening hours for a whole working week (mon-fri)
      properties:
        mon:
          $ref: '#/components/schemas/OpenHoursDay'
        tue:
          $ref: '#/components/schemas/OpenHoursDay'
        wed:
          $ref: '#/components/schemas/OpenHoursDay'
        thu:
          $ref: '#/components/schemas/OpenHoursDay'
        fri:
          $ref: '#/components/schemas/OpenHoursDay'
    Label:
      type: object
      description: Allergene and ingredient information
      properties:
        enum_name:
          type: string
          example: VEGETARIAN
        text:
          type: object
          description: Key-value object containing readable labels. The language is given in the key, and is referred to to the name from the language.
          additionalProperties:
            type: string
          example:
            DE: Vegetarisch
            EN: vegetarian
        abbreviation:
          type: string
          description: Emoji symbol or short form of a label
          example: 🌽