swagger: '2.0' info: title: Foodsoft API v1 version: '1.0.0' description: > [Foodsoft](https://github.com/foodcoops/foodsoft) is web-based software to manage a non-profit food coop (product catalog, ordering, accounting, job scheduling). This is a description of Foodsoft's API v1. Note that each food cooperative typically has their own instance (on a shared server or their own installation), and there are just as many APIs (if the Foodsoft version is recent enough). This API description points to the default development url with the default Foodsoft scope - that would be [http://localhost:3000/f](http://localhost:3000/f). externalDocs: description: General Foodsoft API documentation url: https://github.com/foodcoops/foodsoft/blob/master/doc/API.md # development url with default scope host: localhost:3000 schemes: - 'http' basePath: /f/api/v1 produces: - 'application/json' paths: /user: get: summary: info about the currently logged-in user tags: - 1. User responses: 200: description: success schema: type: object properties: user: $ref: '#/definitions/User' 401: description: not logged-in schema: $ref: '#/definitions/Error401' security: - foodsoft_auth: ['all'] /config: get: summary: configuration variables tags: - 7. General responses: 200: description: success schema: type: object 401: description: not logged-in schema: $ref: '#/definitions/Error401' security: - foodsoft_auth: ['all'] /navigation: get: summary: navigation tags: - 7. General responses: 200: description: success schema: type: object properties: navigation: $ref: '#/definitions/Navigation' 401: description: not logged-in schema: $ref: '#/definitions/Error401' security: - foodsoft_auth: ['all'] definitions: # models User: type: object properties: id: type: integer name: type: string description: full name email: type: string description: email address locale: type: string description: language code required: ['id', 'name', 'email'] Navigation: type: array items: type: object properties: name: type: string description: title url: type: string description: link items: $ref: '#/definitions/Navigation' required: ['name'] minProperties: 2 # name+url or name+items Error: type: object properties: error: type: string description: error code error_description: type: string description: human-readable error message (localized) Error404: type: object properties: error: type: string description: 'not_found' error_description: $ref: '#/definitions/Error/properties/error_description' Error401: type: object properties: error: type: string description: 'unauthorized' error_description: $ref: '#/definitions/Error/properties/error_description' securityDefinitions: foodsoft_auth: type: oauth2 flow: implicit authorizationUrl: http://localhost:3000/f/oauth/authorize scopes: all: full access to user functions offline_access: retain access after user has logged out