- Hands-On RESTful Web Services with Go
- Naren Yellavula
- 347字
- 2021-06-24 17:04:27
Reader's challenge – an API for URL shortening
With all the basics you have learned up to now, try to implement a URL shortening service. A URL shortener takes a very long URL and returns a shortened, crisp, and memorable URL back to the user. At first sight, it looks like magic, but it is a simple math trick.
In a single statement, URL shortening services are built upon two things:
- A string mapping algorithm to map long strings to short strings (Base 62)
- A simple web server that redirects a short URL to the original URL
There are a few obvious advantages of URL shortening:
- Users can remember the URL; easy to maintain
- Users can use the links where there are restrictions on text length, for example, Twitter
- Predictable shortened URL length
Take a look at the following diagram:
Under the hood, the following things happen in a URL shortening service:
- Take the original URL
- Apply BASE62 encoding on it; it generates a Shortened URL
- Store that URL in the database. Map it to the original URL ([shortened_url: original_url])
- Whenever a request comes to the shortened URL, just do an HTTP redirect to the original URL
We will implement a full example in upcoming chapters when we integrate databases to our API server, but before that, though, we should specify the API design documentation.
Take a look at the following table:
URL REST Verb Action Success Failure
/api/v1/new POST Create a shortened URL 200 500, 404
/api/v1/:url GET Redirect to original URL 301 404
You can use a dummy JSON file/Go map to store the URL for now instead of a database.
推薦閱讀
- Django+Vue.js商城項目實戰
- 騰訊iOS測試實踐
- PyTorch Artificial Intelligence Fundamentals
- 技術領導力:程序員如何才能帶團隊
- BeagleBone Media Center
- Building Mobile Applications Using Kendo UI Mobile and ASP.NET Web API
- 基于差分進化的優化方法及應用
- Eclipse Plug-in Development:Beginner's Guide(Second Edition)
- Mastering Ext JS
- 大模型RAG實戰:RAG原理、應用與系統構建
- Swift語言實戰精講
- 利用Python進行數據分析
- Kotlin開發教程(全2冊)
- Julia for Data Science
- HTML5開發精要與實例詳解