python3 flask based python-url-shortener microservice.

Overview

python-url-shortener

This repository is for managing all public/private entity specific api endpoints for an organisation. In this case we have entity as URL shortener

Project Structure

The basic project structure is as follows:

root/
 |-- app
 |   |-- controllers/
 |   |   |-- __init__.py
 |   |   |-- url_shortener_controller.py
 |   |-- services/
 |   |   |-- __init__.py
 |   |   |-- url_shortener_service.py
 |   |-- schemas/
 |   |   |-- __init__.py
 |   |   |-- url_shortener_schema.py
 |   |-- utilities/
 |   |   |-- __init__.py
 |   |   |-- url_shortener_utility.py
 |   |-- tests/
 |   |   |-- __init__.py
 |   |   |-- test_url_shortener_controller.py
 |   |   |-- test_url_shortener_utility.py
 |   |-- config.py
 |   |-- errors.py
 |   |-- routes.py
 |   |-- __init__.py
 |   build.sh
 |   logging.yaml
 |   setup.py
 |   README.md

Synopsis

There are two API endpoints exposed as part of this app
1. /url/encode
2. /url/decode

/url/encode:  Will shorten a valid URL and returns a shorten URL(JSON) also 
put origianl, shorten url in cache(We are using flask_caching for storage).

/url/decode:  Will return a valid URL original URL(JSON) for a given shorten 
url from cache(We are using flask_caching for storage).

For request/response structure please reffer 
Swagger URl after successful buld & run step.

Requirements

python 3.9
Flask 2.0.2
marshmallow 3.12.2
flask_caching
Werkzeug 2.0.2

for detiled requirement please reffer setup.py

Quick Start Setup

Run Setup.

This will create virtualenv and install all required packages and will allow you to run the app from anywhere on your machine.

$> cd the-shortest-url-1-uvpyns
$> ./build.sh

Run the tests

$> cd the-shortest-url-1-uvpyns
$> pytest

Running Locally

API can be executed as follows:

$> cd the-shortest-url-1-uvpyns
$> python api_gateway.py

Navigate to the posted URL in your terminal to be greeted with Swagger, where you can run the API endpoints.

Owner
Asutosh Parida
Love to work on Data.
Asutosh Parida
🌐 URL parsing and manipulation made easy.

furl is a small Python library that makes parsing and manipulating URLs easy. Python's standard urllib and urlparse modules provide a number of URL re

Ansgar Grunseid 2.4k Jan 04, 2023
A tool programmed to shorten links/mask links

A tool programmed to shorten links/mask links

Anontemitayo 6 Dec 02, 2022
Simple python library to deal with URI Templates.

uritemplate Documentation -- GitHub -- Travis-CI Simple python library to deal with URI Templates. The API looks like from uritemplate import URITempl

Hyper 210 Dec 19, 2022
A friendly library for parsing HTTP request arguments, with built-in support for popular web frameworks, including Flask, Django, Bottle, Tornado, Pyramid, webapp2, Falcon, and aiohttp.

webargs Homepage: https://webargs.readthedocs.io/ webargs is a Python library for parsing and validating HTTP request objects, with built-in support f

marshmallow-code 1.3k Jan 01, 2023
A URL builder for genius :D

genius-url A URL builder for genius :D Usage from gurl import genius_url

κŒ—α–˜κ’’κ€€κ“„κ’’κ€€κˆ€κŸ 12 Aug 14, 2021
a url shortener project from semicolonworld

Url Shortener With Django Written by Semicolon World

3 Aug 24, 2021
Ukiyo - A simple, minimalist and efficient discord vanity URL sniper

Ukiyo - a simple, minimalist and efficient discord vanity URL sniper. Ukiyo is easy to use, has a very visually pleasing interface, and has great spee

13 Apr 14, 2022
UDdup - URLs Deduplication Tool

UDdup - URLs Deduplication Tool The tool gets a list of URLs, and removes "duplicate" pages in the sense of URL patterns that are probably repetitive

Rotem Reiss 128 Dec 21, 2022
C++ library for urlencode.

liburlencode C library for urlencode.

Khaidi Chu 6 Oct 31, 2022
Have you ever wondered: Where does this link go? The REDLI Tool follows the path of the URL.

Have you ever wondered: Where does this link go? The REDLI Tool follows the path of the URL. It allows you to see the complete path a redirected URL goes through. It will show you the full redirectio

JAYAKUMAR 28 Sep 11, 2022
coURLan: Clean, filter, normalize, and sample URLs

coURLan: Clean, filter, normalize, and sample URLs Why coURLan? β€œGiven that the bandwidth for conducting crawls is neither infinite nor free, it is be

Adrien Barbaresi 20 Dec 14, 2022
πŸ”— FusiShort is a URL shortener built with Python, Redis, Docker and Kubernetes

This is a playground application created with goal of applying full cycle software development using popular technologies like Python, Redis, Docker and Kubernetes.

Lucas Fusinato Zanis 7 Nov 10, 2022
Use this module to detect if a URL is on discord's phishing list.

PhishDetector This module was made so you can check a URL and see if it's in discord's official list of phishing and suspicious URLs. Installation pip

Elijah 4 Mar 25, 2022
A simple URL shortener built with Flask

A simple URL shortener built with Flask and MongoDB.

Mike Lowe 2 Feb 05, 2022
Extract countries, regions and cities from a URL or text

This project is no longer being maintained and has been archived. Please check the Forks list for newer versions. Forks We are aware of two 3rd party

Ushahidi 216 Nov 18, 2022
A tool to manage the base URL of the Python package index.

chpip A tool to manage the base URL of the Python package index. Installation $ pip install chpip Usage Set pip index URL Set the base URL of the Pyth

Prodesire 4 Dec 20, 2022
URL Shortener in Flask - Web service using Flask framework for Shortener URLs

URL Shortener in Flask Web service using Flask framework for Shortener URLs Install Create Virtual env $ python3 -m venv env Install requirements.txt

Rafnix Guzman 1 Sep 21, 2021
Python implementation for generating Tiny URL- and bit.ly-like URLs.

Short URL Generator Python implementation for generating Tiny URL- and bit.ly-like URLs. A bit-shuffling approach is used to avoid generating consecut

Alireza Savand 170 Dec 28, 2022
Temporary-shortner - A webapp that shortner URLs but for limited time

temporary-shortner A webapp that shortens URLs but for a limited time Demo site

Vitor 2 Jan 07, 2022
Yet another URL library

Yet another URL library

aio-libs 884 Jan 03, 2023