{ "swagger": "2.0", "info": { "contact": {} }, "paths": { "/api/v1/auth/login": { "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "Login to an account using username and password", "parameters": [ { "description": "Login data", "name": "payload", "in": "body", "schema": { "$ref": "#/definitions/api.loginRequestPayload" } } ], "responses": { "200": { "description": "Login successful", "schema": { "$ref": "#/definitions/api.loginResponseMessage" } }, "400": { "description": "Invalid login data" } } } }, "/api/v1/auth/me": { "get": { "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "Get information for the current logged in user", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/model.Account" } }, "403": { "description": "Token not provided/invalid" } } } }, "/api/v1/auth/refresh": { "post": { "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "Refresh a token for an account", "responses": { "200": { "description": "Refresh successful", "schema": { "$ref": "#/definitions/api.loginResponseMessage" } }, "403": { "description": "Token not provided/invalid" } } } }, "/api/v1/tags": { "get": { "produces": [ "application/json" ], "tags": [ "Tags" ], "summary": "List tags", "responses": { "200": { "description": "List of tags", "schema": { "$ref": "#/definitions/model.Tag" } }, "403": { "description": "Token not provided/invalid" } } }, "post": { "produces": [ "application/json" ], "tags": [ "Tags" ], "summary": "Create tag", "responses": { "200": { "description": "Created tag", "schema": { "$ref": "#/definitions/model.Tag" } }, "400": { "description": "Token not provided/invalid" }, "403": { "description": "Token not provided/invalid" } } } } }, "definitions": { "api.loginRequestPayload": { "type": "object", "required": [ "password", "username" ], "properties": { "password": { "type": "string" }, "remember_me": { "type": "boolean" }, "username": { "type": "string" } } }, "api.loginResponseMessage": { "type": "object", "properties": { "token": { "type": "string" } } }, "model.Account": { "type": "object", "properties": { "id": { "type": "integer" }, "owner": { "type": "boolean" }, "password": { "type": "string" }, "username": { "type": "string" } } }, "model.Tag": { "type": "object", "properties": { "id": { "type": "integer" }, "nBookmarks": { "type": "integer" }, "name": { "type": "string" } } } } }