chore: create openapi document
This commit is contained in:
parent
e1e12844a5
commit
00bd014cdd
2 changed files with 73 additions and 0 deletions
|
@ -13,6 +13,10 @@ URL Shortener written in Go.
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> If you are using [Nix](https://nixos.org/), you can just run `nix develop .` or `direnv allow` if you use Direnv.
|
> If you are using [Nix](https://nixos.org/), you can just run `nix develop .` or `direnv allow` if you use Direnv.
|
||||||
|
|
||||||
|
## Dev dependencies
|
||||||
|
|
||||||
|
- [ogen](https://github.com/ogen-go/ogen#install) to generate OpenAPI server
|
||||||
|
|
||||||
# Running the app
|
# Running the app
|
||||||
|
|
||||||
Once you have installed all requirements, you can simply do:
|
Once you have installed all requirements, you can simply do:
|
||||||
|
|
69
openapi.yaml
Normal file
69
openapi.yaml
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
openapi: 3.0.3
|
||||||
|
info:
|
||||||
|
title: URL shortener
|
||||||
|
version: 0.1.0
|
||||||
|
description: An URL shortener service.
|
||||||
|
paths:
|
||||||
|
"/{hash}":
|
||||||
|
get:
|
||||||
|
responses:
|
||||||
|
"307":
|
||||||
|
description: Redirect client to long URL.
|
||||||
|
headers:
|
||||||
|
Location:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
description: Long URL
|
||||||
|
"404":
|
||||||
|
description: Not Found
|
||||||
|
description: Redirect client to long URL.
|
||||||
|
parameters:
|
||||||
|
- schema:
|
||||||
|
type: string
|
||||||
|
name: hash
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
description: Hash of shorten URL.
|
||||||
|
/create:
|
||||||
|
post:
|
||||||
|
requestBody:
|
||||||
|
description: Create a shorten URL
|
||||||
|
required: true
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
description: URL to shorten
|
||||||
|
example: "https://example.com"
|
||||||
|
required:
|
||||||
|
- url
|
||||||
|
responses:
|
||||||
|
"201":
|
||||||
|
description: Succesfully created shorten URL.
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
shorten:
|
||||||
|
type: string
|
||||||
|
description: Created shorten URL. Going to this URL should redirect to URL from request body.
|
||||||
|
examples: {}
|
||||||
|
"400":
|
||||||
|
description: Bad Request
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
message:
|
||||||
|
type: string
|
||||||
|
examples:
|
||||||
|
Example 1:
|
||||||
|
value:
|
||||||
|
message: URL already exist.
|
||||||
|
components:
|
||||||
|
schemas: {}
|
Loading…
Reference in a new issue