{ "swagger": "2.0", "info": { "description": "This is a tiny http API for auth. Register accounts, auth with api-key or name/password, renew JWT tokens...", "title": "JWT Auth API", "contact": { "name": "Power Plan", "url": "https://http://pwrpln.com/", "email": "lilleman@larvit.se" }, "license": { "name": "MIT" }, "version": "0.1" }, "host": "localhost:3000", "basePath": "/", "paths": { "/account": { "post": { "description": "Create an account", "consumes": [ "application/json" ], "produces": [ "application/json" ], "summary": "Create an account", "operationId": "account-create", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/db.CreatedAccount" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/handlers.ResJSONError" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/handlers.ResJSONError" } }, "415": { "description": "Unsupported Media Type", "schema": { "$ref": "#/definitions/handlers.ResJSONError" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/handlers.ResJSONError" } } } } }, "/account/{id}": { "get": { "description": "Get account", "consumes": [ "application/json" ], "produces": [ "application/json" ], "summary": "Get account", "operationId": "get-account-by-id", "parameters": [ { "type": "string", "description": "Account ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/db.Account" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/handlers.ResJSONError" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/handlers.ResJSONError" } }, "415": { "description": "Unsupported Media Type", "schema": { "$ref": "#/definitions/handlers.ResJSONError" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/handlers.ResJSONError" } } } } }, "/auth/api-key": { "post": { "description": "Authenticate account by API Key", "consumes": [ "application/json" ], "produces": [ "application/json" ], "summary": "Authenticate account by API Key", "operationId": "auth-account-by-api-key", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/db.Account" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/handlers.ResJSONError" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/handlers.ResJSONError" } }, "415": { "description": "Unsupported Media Type", "schema": { "$ref": "#/definitions/handlers.ResJSONError" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/handlers.ResJSONError" } } } } }, "/auth/password": { "post": { "description": "Authenticate account by Password", "consumes": [ "application/json" ], "produces": [ "application/json" ], "summary": "Authenticate account by Password", "operationId": "auth-account-by-password", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/db.Account" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/handlers.ResJSONError" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/handlers.ResJSONError" } }, "415": { "description": "Unsupported Media Type", "schema": { "$ref": "#/definitions/handlers.ResJSONError" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/handlers.ResJSONError" } } } } }, "/renew-token": { "post": { "description": "Renew token", "consumes": [ "application/json" ], "produces": [ "application/json" ], "summary": "Renew token", "operationId": "renew-token", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/db.Account" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/handlers.ResJSONError" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/handlers.ResJSONError" } }, "415": { "description": "Unsupported Media Type", "schema": { "$ref": "#/definitions/handlers.ResJSONError" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/handlers.ResJSONError" } } } } } }, "definitions": { "db.Account": { "type": "object", "properties": { "created": { "type": "string" }, "fields": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" } } }, "id": { "type": "string" }, "name": { "type": "string" } } }, "db.CreatedAccount": { "type": "object", "properties": { "apiKey": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" } } }, "handlers.ResJSONError": { "type": "object", "properties": { "error": { "type": "string" }, "field": { "type": "string" } } } } }