#link-shortener #key-value #url #key-value-store #shortener #value #key

app qui-vive

始终处于警觉状态的关键值存储和URL缩短器

1个不稳定版本

使用旧的Rust 2015

0.1.0 2018年5月3日

#2651 in 数据库接口

MIT/Apache

23KB
411

qui-vive-rs

始终处于警觉状态的关键值存储和URL缩短器。

使用 cargo run 在默认选项下本地构建和运行 qui-vive。

命令行界面

USAGE:
    qui-vive [FLAGS] [OPTIONS]

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information
    -v               Sets the level of verbosity

OPTIONS:
        --cache-type <type>                   The cache type (redis, memory)
        --external-url <URL>                  The external URL (https://qui-vive.link)
        --id-charset <charset>                The generated id character set
        --id-length <length>                  The generated id length
        --listener-url <URL>                  The listener URL (http://127.0.0.1:8080)
        --redis-hostname <hostname[:port]>    The redis hostname
        --redis-password <password>           The redis password

示例用法

默认情况下,qui-vive将数据存储在内存缓存中,并监听localhost HTTP端口8080。

首先,检查qui-vive是否正在运行且状态良好

$ curl -w "%{http_code}" http://127.0.0.1:8080/health
200

如果您没有收到HTTP 200 OK响应,则qui-vive可能没有正常工作。

键值存储

使用POST请求在/key上创建一个带有生成id的新值。可以用于检索值的URL在HTTP响应体中返回。

$ curl -X POST http://127.0.0.1:8080/key -d "this is my sample data"
http://127.0.0.1:8080/key/xXq3FSJK5

使用返回的URL获取值并确认它符合预期

$ curl http://127.0.0.1:8080/key/xXq3FSJK5
this is my sample data

也可以使用相同的URL直接通过浏览器获取值。

URL缩短器

使用POST请求在/url上创建一个将重定向到较长的URL的短URL。可以用于重定向到长URL的短URL在HTTP响应体中返回。

curl -X POST http://127.0.0.1:8080/url -d "https://github.com/wayk/qui-vive-rs/"
http://127.0.0.1:8080/TwfdpHQJC

如果您在浏览器中使用短URL,它应该正确地重定向到长URL。否则,请使用curl确认它是否正常工作。

$ curl -w "%{redirect_url}" http://127.0.0.1:8080/stgQBECEz
https://github.com/wayk/qui-vive-rs/

邀请链接功能是键值存储和URL缩短器的组合。想法是生成一个指向页面的短链接,然后使用查询参数中的id提供者从键值存储加载数据。

创建一个重定向到 https://contoso.com/meeting?id= 的邀请

$ curl -X POST http://127.0.0.1:8080/inv \
> -H "QuiVive-IdParam: id" \
> -H "QuiVive-DstUrl: https://contoso.com/meeting" \
> -d '{"meeting":"master plan","organizer":"[email protected]"}'
http://127.0.0.1:8080/KT2HKxVRi

获取目标URL

$ curl -w "%{redirect_url}" http://127.0.0.1:8080/KT2HKxVRi
https://contoso.com/meeting?id=KT2HKxVRi

获取相关数据

$ curl http://127.0.0.1:8080/key/KT2HKxVRi
{"meeting":"master plan","organizer":"[email protected]"}

目标页面应使用URL中的id=查询参数获取相关数据并向用户展示邀请信息。

依赖关系

~18–29MB
~447K SLoC