如何使用ASP.NET Core Web API实现短链接服务
生活随笔
收集整理的這篇文章主要介紹了
如何使用ASP.NET Core Web API实现短链接服务
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
在前面的文章中,我們介紹了hashids.net,可以將數值型Id加密成無意義的字符串。
今天,我們來利用這一特點,實現短鏈接服務。
原理
短鏈接,顧名思義就是在形式上比較短的鏈接網址。借助短鏈接,可以用簡短的網址替代原來冗長的網址,例如下例:
zhiurl.cn/erbDjM
但是訪問這個地址,實際會打開我的公眾號。
監控網絡請求,發現實際發生的是302臨時重定向。
因此,可以猜測整個短鏈接服務的實現原理如下:
用戶訪問短鏈接,請求到達服務器;
服務器將短鏈接轉換成為長鏈接,然后給瀏覽器返回重定向的狀態碼302;
瀏覽器拿到重定向的狀態碼,以及真正需要訪問的地址,重定向到真正的長鏈接上。
實現
創建一個Web API項目,用于實現短鏈接服務。
首先,實現生成短鏈接接口:
[HttpPost("shorten")] public?string?ShortenUrl([FromBody]string?url) {var?id?=?db.Insert(url);var?hashids?=?new?Hashids("公眾號My?IO",?minHashLength:?6);return?hashids.Encode(id); }將長鏈接保存到數據庫,然后將數據Id加密成字符串返回。
然后,實現短鏈接跳轉接口:
[HttpGet("{shortUrl}")] public?IActionResult?GetUrl(string?shortUrl) {var?hashids?=?new?Hashids("公眾號My?IO",?minHashLength:?6);var?id?=?hashids.Decode(shortUrl)[0];var?urlData?=?db.Get(id);return?Redirect(urlData.Url); }將短鏈接解碼成數據Id,然后到數據庫查到對應長鏈接。最后返回跳轉狀態碼。
結論
在本文中,通過hashids.net,我們使用ASP.NET Core Web API實現了短鏈接服務。
如果你覺得這篇文章對你有所啟發,請關注我的個人公眾號”My IO“
總結
以上是生活随笔為你收集整理的如何使用ASP.NET Core Web API实现短链接服务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MASA Framework - 整体设
- 下一篇: Prism For WPF Login对