From 98ad2816e8cf383108a755447f48d80f2dd43795 Mon Sep 17 00:00:00 2001 From: Alejandro Celaya <alejandro@alejandrocelaya.com> Date: Sun, 6 May 2018 12:19:08 +0200 Subject: [PATCH] Documented new endpoint to create short URLs in a single step --- .../swagger/paths/v1_short-codes_shorten.json | 125 ++++++++++++++++++ docs/swagger/swagger.json | 3 + 2 files changed, 128 insertions(+) create mode 100644 docs/swagger/paths/v1_short-codes_shorten.json diff --git a/docs/swagger/paths/v1_short-codes_shorten.json b/docs/swagger/paths/v1_short-codes_shorten.json new file mode 100644 index 00000000..1ee3387c --- /dev/null +++ b/docs/swagger/paths/v1_short-codes_shorten.json @@ -0,0 +1,125 @@ +{ + "get": { + "tags": [ + "ShortCodes" + ], + "summary": "Create a short URL", + "description": "Creates a short URL in a single API call. Useful for third party integrations", + "parameters": [ + { + "name": "apiKey", + "in": "query", + "description": "The API key used to authenticate the request", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "longUrl", + "in": "query", + "description": "The URL to be shortened", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "The format in which you want the response to be returned. You can also use the \"Accept\" header instead of this", + "required": false, + "schema": { + "type": "string", + "enum": [ + "txt", + "json" + ] + } + } + ], + "responses": { + "200": { + "description": "The list of short URLs", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "longUrl": { + "type": "string", + "description": "The original long URL that has been shortened" + }, + "shortUrl": { + "type": "string", + "description": "The generated short URL" + }, + "shortCode": { + "type": "string", + "description": "the short code that is being used in the short URL" + } + } + } + }, + "text/plain": { + "schema": { + "type": "string" + } + } + }, + "examples": { + "application/json": { + "longUrl": "https://github.com/shlinkio/shlink", + "shortUrl": "https://dom.ain/abc123", + "shortCode": "abc123" + }, + "text/plain": "https://dom.ain/abc123" + } + }, + "400": { + "description": "The long URL was not provided or is invalid.", + "content": { + "application/json": { + "schema": { + "$ref": "../definitions/Error.json" + } + }, + "text/plain": { + "schema": { + "type": "string" + } + } + }, + "examples": { + "application/json": { + "error": "INVALID_URL", + "message": "Provided URL foo is invalid. Try with a different one." + }, + "text/plain": "INVALID_URL" + } + }, + "500": { + "description": "Unexpected error.", + "content": { + "application/json": { + "schema": { + "$ref": "../definitions/Error.json" + } + }, + "text/plain": { + "schema": { + "type": "string" + } + } + }, + "examples": { + "application/json": { + "error": "UNKNOWN_ERROR", + "message": "Unexpected error occurred" + }, + "text/plain": "UNKNOWN_ERROR" + } + } + } + } +} diff --git a/docs/swagger/swagger.json b/docs/swagger/swagger.json index b45b4e3a..c5dbd791 100644 --- a/docs/swagger/swagger.json +++ b/docs/swagger/swagger.json @@ -40,6 +40,9 @@ "/v1/short-codes": { "$ref": "paths/v1_short-codes.json" }, + "/v1/short-codes/shorten": { + "$ref": "paths/v1_short-codes_shorten.json" + }, "/v1/short-codes/{shortCode}": { "$ref": "paths/v1_short-codes_{shortCode}.json" },