-
Notifications
You must be signed in to change notification settings - Fork 0
/
swagger.json
128 lines (128 loc) · 3.98 KB
/
swagger.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
{
"swagger": "2.0",
"info": {
"contact": {}
},
"paths": {
"/api/v1/urls": {
"post": {
"description": "Shortens a given URL and provides an expiration time.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"URL Shortening"
],
"summary": "Shorten a URL",
"parameters": [
{
"description": "Shorten Request",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/main.ShortenRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/main.ShortenResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/{code}": {
"get": {
"description": "Redirects to the original URL.",
"tags": [
"URL Redirection"
],
"summary": "Redirect to a URL",
"parameters": [
{
"type": "string",
"description": "Shortened URL Code",
"name": "code",
"in": "path",
"required": true
}
],
"responses": {
"301": {
"description": "Moved Permanently",
"schema": {
"type": "string"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
}
},
"definitions": {
"main.ShortenRequest": {
"type": "object",
"required": [
"expireAt",
"url"
],
"properties": {
"expireAt": {
"type": "string",
"example": "2025-02-08T09:20:41Z"
},
"url": {
"type": "string",
"example": "https://example.com"
}
}
},
"main.ShortenResponse": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "5abcABC"
},
"shortURL": {
"type": "string",
"example": "https://localhost/5abcABC"
}
}
}
}
}