.
├───.github
│ └───workflow
├───cmd
│ ├───migrator
│ └───url-shortener
├───config
├───domain
│ └───models
├───internal
│ ├───clients
│ │ └───sso
│ │ └───grpc
│ ├───config
│ ├───http-server
│ │ ├───handlers
│ │ │ ├───redirect
│ │ │ │ └───mocks
│ │ │ └───url
│ │ │ ├───delete
│ │ │ │ └───mocks
│ │ │ └───save
│ │ │ └───mocks
│ │ └───middleware
│ │ ├───auth
│ │ └───logger
│ ├───lib
│ │ ├───api
│ │ │ └───response
│ │ ├───jwt
│ │ ├───logger
│ │ │ ├───handlers
│ │ │ │ ├───slogdiscard
│ │ │ │ └───slogpretty
│ │ │ └───sl
│ │ └───random
│ └───storage
│ └───sqlite
├───migrations
└───storage
Для работы сервиса необходима авторизация в сервисе SSO
{
"url": "url", // required, url
"alias": "alias" // omitemtpy
}
{
"status": "status",
"error": "error", // omitempty
"alias": "alias"
}
curl --location 'localhost:8085/' --header 'Content-Type: application/json' --header 'Authorization: Bearer XXXXXXXXXXXX' --data '{"url":"https://yandex.ru", "alias":"ya"}'
curl --location 'localhost:8085/' --header 'Content-Type: application/json' --header 'Authorization: Bearer XXXXXXXXXXXX' --data '{"url":"https://mail.ru"}'
curl --location 'localhost:8085/ya'
{
"status": "status",
"error": "error" // omitempty
}
curl --location --request DELETE 'localhost:8085/ya' --header 'Authorization: Bearer XXXXXXXXXXXX'
{
"status": "status",
"error": "error" // omitempty
}