URL qisqartirish servisi
Uzun URL'larni qisqartirishga yordam beradigan URL Shortener API yarating.
Sizdan foydalanuvchilarga uzun URL'larni qisqartirish imkonini beradigan oddiy RESTful API yaratish talab etiladi. API qisqa URL'larni yaratish, olish, yangilash va o'chirish uchun endpoint'larni taqdim etishi kerak. Shuningdek, u qisqa URL'ga necha marta murojaat qilingani haqida statistika berishi kerak.

Talablar
Siz URL qisqartirish servisi uchun RESTful API yaratishingiz kerak. API foydalanuvchilarga quyidagi amallarni bajarish imkonini berishi kerak:
- Yangi qisqa URL yaratish
- Qisqa URL orqali asl URL'ni olish
- Mavjud qisqa URL'ni yangilash
- Mavjud qisqa URL'ni o'chirish
- Qisqa URL bo'yicha statistikani olish (masalan, necha marta murojaat qilingani)
Ixtiyoriy ravishda API bilan ishlash uchun minimal frontend sozlashingiz va qisqa URL'lardan asl URL'larga redirect'larni sozlashingiz mumkin.
API endpoint'lari
Quyida har bir API amali bo'yicha tafsilotlar keltirilgan.
Qisqa URL yaratish
POST metodi yordamida yangi qisqa URL yarating
POST /shorten
{
"url": "https://www.example.com/some/long/url"
}
Endpoint request body'ni validatsiya qilishi va yangi yaratilgan qisqa URL bilan 201 Created status code'ini qaytarishi kerak, ya'ni
{
"id": "1",
"url": "https://www.example.com/some/long/url",
"shortCode": "abc123",
"createdAt": "2021-09-01T12:00:00Z",
"updatedAt": "2021-09-01T12:00:00Z"
}
yoki validatsiya xatolari bo'lsa, xato xabarlari bilan 400 Bad Request status code'ini qaytarishi kerak. Qisqa kodlar noyob bo'lishi va tasodifiy tarzda yaratilishi kerak.
Asl URL'ni olish
GET metodi yordamida qisqa URL orqali asl URL'ni oling
GET /shorten/abc123
Endpoint asl URL bilan 200 OK status code'ini qaytarishi kerak, ya'ni
{
"id": "1",
"url": "https://www.example.com/some/long/url",
"shortCode": "abc123",
"createdAt": "2021-09-01T12:00:00Z",
"updatedAt": "2021-09-01T12:00:00Z"
}
yoki qisqa URL topilmasa, 404 Not Found status code'ini qaytarishi kerak. Qisqa URL orqali asl URL'ni olish va foydalanuvchini asl URL'ga redirect qilish frontend'ingiz zimmasida bo'lishi kerak.
Qisqa URL'ni yangilash
PUT metodi yordamida mavjud qisqa URL'ni yangilang
PUT /shorten/abc123
{
"url": "https://www.example.com/some/updated/url"
}
Endpoint request body'ni validatsiya qilishi va yangilangan qisqa URL bilan 200 OK status code'ini qaytarishi kerak, ya'ni
{
"id": "1",
"url": "https://www.example.com/some/updated/url",
"shortCode": "abc123",
"createdAt": "2021-09-01T12:00:00Z",
"updatedAt": "2021-09-01T12:30:00Z"
}
yoki validatsiya xatolari bo'lsa, xato xabarlari bilan 400 Bad Request status code'ini qaytarishi kerak. Qisqa URL topilmasa, u 404 Not Found status code'ini qaytarishi kerak.
Qisqa URL'ni o'chirish
DELETE metodi yordamida mavjud qisqa URL'ni o'chiring
DELETE /shorten/abc123
Endpoint qisqa URL muvaffaqiyatli o'chirilgan bo'lsa 204 No Content status code'ini, qisqa URL topilmasa esa 404 Not Found status code'ini qaytarishi kerak.
URL statistikasini olish
GET metodi yordamida qisqa URL bo'yicha statistikani oling
GET /shorten/abc123/stats
Endpoint statistika bilan 200 OK status code'ini qaytarishi kerak, ya'ni
{
"id": "1",
"url": "https://www.example.com/some/long/url",
"shortCode": "abc123",
"createdAt": "2021-09-01T12:00:00Z",
"updatedAt": "2021-09-01T12:00:00Z",
"accessCount": 10
}
yoki qisqa URL topilmasa, 404 Not Found status code'ini qaytarishi kerak.
<hr />
Tech stack
Bu loyiha uchun o'zingiz tanlagan istalgan dasturlash tili, freymvork va ma'lumotlar bazasidan bemalol foydalaning. Ba'zi tavsiyalar:
- Agar JavaScript'dan foydalansangiz, Node.js'ni Express.js bilan ishlatishingiz mumkin
- Agar Python'dan foydalansangiz, Flask yoki Django'dan foydalanishingiz mumkin
- Agar Java'dan foydalansangiz, Spring Boot'dan foydalanishingiz mumkin
- Agar Ruby'dan foydalansangiz, Ruby on Rails'dan foydalanishingiz mumkin
Ma'lumotlar bazalari uchun quyidagilardan foydalanishingiz mumkin:
- SQL'dan foydalansangiz — MySQL
- NoSQL'dan foydalansangiz — MongoDB
Sizning vazifangiz — API'ning asosiy funksionalligini amalga oshirish: qisqa URL'larni yaratish, olish, yangilash va o'chirish, shuningdek murojaatlar statistikasini kuzatib borish va qaytarishga e'tibor qarating. Bu loyiha uchun authentication yoki authorization'ni amalga oshirishingiz shart emas.