Skip to content

URL Shortener adalah layanan API untuk memendekkan URL panjang menjadi URL pendek yang lebih mudah dibagikan. Aplikasi ini dibangun menggunakan Go dengan framework Gin dan database SQLite.

Notifications You must be signed in to change notification settings

bimadevs/go-url-shorten

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

URL Shortener API

Dibuat oleh Bimadev

URL Shortener adalah layanan API untuk memendekkan URL panjang menjadi URL pendek yang lebih mudah dibagikan. Aplikasi ini dibangun menggunakan Go dengan framework Gin dan database SQLite.

Fitur Utama

  • Pemendekkan URL: Mengubah URL panjang menjadi URL pendek
  • Custom Alias: Opsi untuk menentukan nama kustom untuk URL pendek
  • Sistem API Key: Keamanan dengan API key untuk mengakses layanan
  • Statistik Klik: Melacak berapa kali URL pendek diakses
  • CORS Support: Mendukung integrasi dengan aplikasi frontend

Instalasi dan Penggunaan

Prasyarat

  • Go (versi 1.16 atau lebih baru)
  • SQLite
  • Git

Langkah Instalasi

  1. Clone repositori

    git clone https://github.com/bimadevs/go-url-shorten.git
    cd go-url-shorten
  2. Install dependensi

    # Inisialisasi modul Go jika belum ada file go.mod
    go mod init go-url-shorten
    
    # Install dependensi yang diperlukan
    go get github.com/gin-gonic/gin
    go get gorm.io/gorm
    go get gorm.io/driver/sqlite
  3. Jalankan aplikasi

    go run main.go

Aplikasi akan berjalan di http://localhost:8080

Penggunaan API

1. Mendapatkan API Key

Endpoint: POST /generate-key

Contoh Request:

curl -X POST http://localhost:8080/generate-key

Contoh Response:

{
  "api_key": "Bimadevxxxxxxxx"
}

2. Memendekkan URL

Endpoint: POST /shorten

Headers:

  • X-API-Key: API key yang didapatkan sebelumnya
  • Content-Type: application/json

Body:

{
  "original_url": "https://example.com/very/long/url/that/needs/shortening",
  "custom_alias": "myurl"  // Opsional
}

Contoh Request:

curl -X POST http://localhost:8080/shorten \
  -H "Content-Type: application/json" \
  -H "X-API-Key: Bimadevxxxxxxxx" \
  -d '{"original_url": "https://example.com/path", "custom_alias": "myurl"}'

Contoh Response:

{
  "short_url": "http://localhost:8080/myurl"
}

3. Mengakses URL Pendek

Endpoint: GET /:short

Cukup akses URL pendek melalui browser atau aplikasi HTTP client, dan Anda akan diarahkan ke URL asli.

4. Melihat Statistik URL

Endpoint: GET /stats/:short

Contoh Request:

curl http://localhost:8080/stats/myurl

Contoh Response:

{
  "short_url": "http://localhost:8080/myurl",
  "original_url": "https://example.com/path",
  "click_count": 5
}

Aturan dan Batasan

  • URL: Harus dalam format yang valid
  • Alias: Hanya huruf dan angka diperbolehkan, maksimal 15 karakter
  • API Key: Wajib digunakan untuk membuat URL pendek

Integrasi dengan Frontend

API ini mendukung CORS, sehingga dapat dengan mudah diintegrasikan dengan aplikasi frontend seperti React, Vue, atau Angular.

Contoh penggunaan dengan JavaScript:

// Mendapatkan API Key
async function getApiKey() {
  const response = await fetch('http://localhost:8080/generate-key', {
    method: 'POST'
  });
  return await response.json();
}

// Memendekkan URL
async function shortenUrl(apiKey, originalUrl, customAlias = '') {
  const response = await fetch('http://localhost:8080/shorten', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'X-API-Key': apiKey
    },
    body: JSON.stringify({
      original_url: originalUrl,
      custom_alias: customAlias
    })
  });
  return await response.json();
}

Struktur Database

Tabel URL

  • ID: Primary key
  • ShortCode: Kode pendek unik untuk URL
  • OriginalURL: URL asli
  • ClickCount: Jumlah klik
  • APIKey: API key yang digunakan untuk membuat URL pendek

Tabel User

  • ID: Primary key
  • APIKey: API key unik untuk pengguna

Lisensi

Kode ini open source. Silakan gunakan dengan tetap mencantumkan kredit kepada developer asli.


Happy Coding :_)

Source Code ini open source untuk orang. Jangan hapus ini untuk menghargai Developer.

About

URL Shortener adalah layanan API untuk memendekkan URL panjang menjadi URL pendek yang lebih mudah dibagikan. Aplikasi ini dibangun menggunakan Go dengan framework Gin dan database SQLite.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages