Barcha loyihalar
O'rtaAPI

URL qisqartirish servisi

Uzun URL'larni qisqartirishga yordam beradigan URL Shortener API yarating.

PythonBackendNode.jsJavaSpring BootGoPHPProgramming LanguageDatabase IndexingHTTP Redirects

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.

URL Shortening Service

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.

Yo'l xaritalariQo'llanmalarFAQYouTube

yo'lxaritaroadmap.shasosida

Hamjamiyat tomonidan yaratilgan yo'l xaritalari, eng yaxshi amaliyotlar, loyihalar, maqolalar, manbalar va yo'nalishlar — o'z yo'lingizni tanlash va kasbingizda o'sish uchun.

© yo'lxarita·Shartlar·Maxfiylik·

roadmap.sh

Barcha kontent roadmap.sh loyihasidan olingan (© Kamran Ahmed) va shaxsiy o'rganish uchun o'zbek tiliga tarjima qilinmoqda.

Qidiruv

Yo'l xaritalari, loyihalar va savollarni qidiring