• 如何使用ASP.NET Core Web API实现短链接服务


    前言

    hashids.net,可以将数值型Id加密成无意义的字符串。我们来利用这一特点,实现短链接服务。

    原理

    短链接,顾名思义就是在形式上比较短的链接网址。借助短链接,可以用简短的网址替代原来冗长的网址,例如下例:

    • zhiurl.cn/erbDjM

    但是访问这个地址,实际会打开我的公众号。

    监控网络请求,发现实际发生的是302临时重定向。

    因此,可以猜测整个短链接服务的实现原理如下:

    1. 用户访问短链接,请求到达服务器;
    2. 服务器将短链接转换成为长链接,然后给浏览器返回重定向的状态码302;
    3. 浏览器拿到重定向的状态码,以及真正需要访问的地址,重定向到真正的长链接上。

    实现

    创建一个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实现了短链接服务。

  • 相关阅读:
    #虚树,树形dp#CF613D Kingdom and its Cities
    #搜索,容斥#洛谷 2567 [SCOI2010]幸运数字
    #三分#洛谷 5931 [清华集训2015]灯泡
    windows中日期自动替换
    oracle的tablespaces使用情况监控
    k8s配置master运行pod
    redis配置数据持久化
    Centos7清理僵尸进程
    ZOJ 1078 Palindrom Numbers
    OCP 071【中文】考试题库(cuug整理)第33题
  • 原文地址:https://www.cnblogs.com/dongh/p/15824135.html
Copyright © 2020-2023  润新知