chore: create openapi document

This commit is contained in:
Bastien Riviere 2024-01-29 19:19:50 +01:00
parent e1e12844a5
commit 00bd014cdd
Signed by: babariviere
GPG key ID: 4E5F0839249F162E
2 changed files with 73 additions and 0 deletions

View file

@ -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
View 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: {}