A URL shortening app for Django.
Project description
django-url-shortening
A custom URL shortening app for Django with API.
Usage
Add urlshortening app to your INSTALLED_APPS and do migrate
Wire up the redirect view by adding to your URLconf
('^linkshortening/', include('urlshortening.urls'))
Add settings (more about parameters further)
INITIAL_URL_LEN = 6 RETRY_COUNT = 5 SHORT_URL_PATH = 'http://example.com/short-prefix/' REDIRECT_PREFIX = 'r'
Now you can use API to make short links
POST linkshortening/short/
With json data {"full_url": "http://example.com/a/b/c/d/e"}
And get response
{"data": { "short_id": "123456", "short_url_path": "http://example.com/short-prefix/" }, "error": ""}
You could also use urlshortening right from code
from urlshortening.models import get_short_url, invalidate_url, get_full_url
url = "http://example.com/a/b/c/d/e" short_url = get_short_url(url) # Url object print(short_url.short_id) # id for short url
full_url = get_full_url(short_url.short_id) # Url object print(full_url.url) # "http://example.com/a/b/c/d/e"
# You could also invalidate url invalidate_url(full_url.short_id)
API
Get short link
URL
/short/
Method: POST
Data Params
full_url
Success Response:
Code: 200 Content: { data: { "short_url_path": "000001" }, error: "" }
Error Response:
Code: 400 Content: { error : "full_url is empty" }
Code: 400 Content: { error : "full_url is too long" }
Get full link
URL
/expand/:short_id/
Method: GET
URL Params
short_id=[string]
Success Response:
Code: 200 Content: { error : "", data: { full_url: "http://example.com/to-000001" }}
Error Response:
Code: 404 Content: { error : "Link is expired" }
Code: 404 Content: { error : "Url doesn\'t exist" }
Get redirect
URL
/REDIRECT_PREFIX/expand/:short_id/
Method: GET
URL Params
short_id=[string]
Success Response:
Code: 302
Error Response:
Code: 404 Content: { error : "Link is expired" }
Code: 404 Content: { error : "Url doesn\'t exist" }
Invalidate url
URL
/invalidate/
Method: POST
Data Params
short_id
Success Response:
Code: 200 Content: { error : "", data: { "short_id": "000001", "invalidated": "true" } }
Error Response:
Code: 400 Content: { error : "short_id is empty" }
Code: 400 Content: { error : "Link is already expired" }
Code: 404 Content: { error : "Url doesn\'t exist" }
Settings
Available settings are:
INITIAL_URL_LEN
Initial length of short id for url. Once you get more short id’s than is possible in all combinations of INITIAL_URL_LEN symbols it will increase by one
RETRY_COUNT
How many times do we to check before increasing INITIAL_URL_LEN.
SHORT_URL_PATH
Url that will be returned with short_id on POST linkshortening/short/ request. It might help you to construct full url.
REDIRECT_PREFIX
Select prefix to use redirect links. For example REDIRECT_PREFIX="r" and we get redirect links with format /r/expand/{short_id}/
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for django-url-shortening-1.0.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d94c6adc46dd80427e73b1c7433dbd8af240037c9960f778d1fedb6489e9f4e |
|
MD5 | 9d3d57142a10b49231234ad81d76efe7 |
|
BLAKE2b-256 | cb88281ed0e22547a94a6042a53eb639e2b637e6df95f5cfafda8e25d67174a2 |