1.0.5 • Published 9 months ago

@khabzox/4links-backend v1.0.5

Weekly downloads
-
License
-
Repository
github
Last release
9 months ago

4Links Backend

4Links is a URL shortening service that allows users to create, manage, and track shortened URLs.

Table of Contents

Getting Started

Prerequisites

  • Node.js
  • Express
  • MongoDB
  • Clerk

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/4links-backend.git
    cd 4links-backend
  2. Install dependencies:

    npm install

Configuration

  1. Create a .env file based on the .env.example:

    cp .env.example .env
  2. Update the .env file with your MongoDB URI and other configuration settings.

    # MongoDB connection URI
    MONGODB_URI=your_mongodb_uri
    
    # Server port
    PORT=5000
    
    # Clerk API keys for authentication and authorization
    CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
    CLERK_SECRET_KEY=your_clerk_secret_key

Running the Server

  1. Start the server:

    npm start

The server will be running on http://localhost:5000.

API Documentation

Create a Shortened URL

  • Endpoint: POST /api/shorten
  • Description: Creates a shortened URL.
  • Request Body:
    {
      "originalUrl": "https://example.com"
    }
  • Response:
    {
      "shortUrl": "abc123"
    }

Get All URLs

  • Endpoint: GET /api/all
  • Description: Retrieves all URLs.
  • Response:
    [
      {
        "originalUrl": "https://example.com",
        "shortUrl": "abc123"
      },
      ...
    ]

Get a Shortened URL

  • Endpoint: GET /api/get-short-url
  • Description: Retrieves a shortened URL for a given original URL.
  • Request Query:
    {
      "originalUrl": "https://example.com"
    }
  • Response:
    {
      "shortUrl": "abc123"
    }

Read a URL

  • Endpoint: GET /api/:shortUrl
  • Description: Retrieves the original URL for a given shortened URL.
  • Response:
    {
      "originalUrl": "https://example.com",
      "shortUrl": "abc123"
    }

Update a URL

  • Endpoint: PUT /api/:shortUrl
  • Description: Updates the original URL for a given shortened URL.
  • Request Body:
    {
      "originalUrl": "https://newexample.com"
    }
  • Response:
    {
      "originalUrl": "https://newexample.com",
      "shortUrl": "abc123"
    }

Delete a URL

  • Endpoint: DELETE /api/:shortUrl
  • Description: Deletes a shortened URL.
  • Response:
    {
      "message": "URL deleted"
    }

Redirect to the Original URL

  • Endpoint: GET /api/r/:shortUrl
  • Description: Redirects to the original URL associated with the shortened URL.

Example Usage

To use the 4Links backend package in your project, follow these steps:

Install the package:

npm install @khabzox/4links-backend

Import and use the functions in your project:

import express from "express";
import {
  connectDB,
  setupMiddleware,
  createUrl,
  readUrl,
  updateUrl,
  deleteUrl,
  getAllUrls,
  getShortenedUrl,
  redirectUrl,
} from "@khabzox/4links-backend";

const app = express();

// Connect to MongoDB
connectDB();

// Setup middleware
setupMiddleware(app);

// Define routes
app.post("/shorten", createUrl);
app.get("/all", getAllUrls);
app.get("/get-short-url", getShortenedUrl);
app.get("/:shortUrl", readUrl);
app.put("/:shortUrl", updateUrl);
app.delete("/:shortUrl", deleteUrl);
app.get("/r/:shortUrl", redirectUrl);

const PORT = process.env.PORT || 5000;
app.listen(PORT, () => {
  console.log(`Server running on port ${PORT}`);
});

License

  • This project is licensed under the MIT License.
1.0.5

9 months ago

1.0.3

9 months ago

1.0.2

9 months ago