#qrcode #api #encode #decode #encode-decode #json

nightly app qr-api

使用Rust编写的简单快速的QR码编码/解码API

1个不稳定版本

0.1.0 2021年5月7日

1297HTTP服务器

MIT 许可证

16KB
63

QR-API

b b

使用Rust编写的简单快速的QR码编码/解码API。

用法

注意

  • 此API仅接收和返回base64编码。
  • 生成的QR码将是一个PNG图片。
  • 此API仅接受GET请求。
  • 您可以通过 https://qr-ende.herokuapp.com 访问此API。

编码

要编码我们的文本,我们需要向 /encode/<your_text> 路径发送请求,例如

curl 'https://qr-ende.herokuapp.com/encode/hello'

上面的命令将给我们一个 128px x 128pxPNG 图片,使用base64编码

  • base64
"iVBORw0KGgoAAAANSUhEUgAAAHQAAAB0CAAAAABx8Un7AAACOElEQVR4nO3NW4obQRBEUc/+F237NAQE1VWSNbjnKy+IeFS24uv3r59nRh9lRh9lRh9lRh9lRh/lNvr193cit7lJRrodfYcZ3ZLb3CQj3Y6+w3Z07dA9j2ToOoddP6M3uueRDF3nsOuPozQkU+x8a0imzYxeGpIpdr41JNPmW6OQkU7maUimzYxeGpJpkJFO5mlIps23RnnI/KohmTYzemlIpuAh86uGZNocR1fSR8FD5unKrp/RG+mj4CHzdGXXb0dPuPV+0hPemxnd4tb7SU94b26jn5ChT/9jRv+J/zbqj9LFU6w+6OToO2b0Ip5i9UEnR99xGw35Awq+0Xe3Zuhw69ci+MAbBd/ou1szdLj1axF84I2Cb/TdrRk63Pq1CD7wRsE3+u7WDB1u/Vo0/VF80CF9MrrjaTOjFz6Am/igQ/pkdMfT5jbqKHhL5iHvfJOegm9m9MJbMg9555v0FHxzG0Uf81HwkPmTvmJGL7zxUfCQ+ZO+Yjv6Cn8K3/E0yNDxrc2MHvEn8B1Pgwwd39rcRh2d6Ft3yfGtQV6Z0S196y45vjXIK9vRtUP61qY7/hUzeiN9a9Md/4rjKA3JtOmOD+mg74wZvTQk06Y7PqSDvjM+HqWIpyGZNrpmRi8NyVHE05BMG13z8Sh4yDwNyas2M3ppSKbgIfM0JK/aHEdXuudxyu+Y0Rvd8zjld2xHT7jdvevhjV91ZUa3uN296+GNX3XlNvoTzOijzOijzOijzOijzOij/AFHTEgf6TUWfAAAAABJRU5ErkJggg=="
  • png

img

此外,我们还可以使用查询字符串自定义QR码的宽度和高度进行编码

curl 'https://qr-ende.herokuapp.com/encode/hello?width=64&height=64'

上面的命令将给我们一个 64px x 64px 的PNG图片,使用base64编码

  • base64
"iVBORw0KGgoAAAANSUhEUgAAADoAAAA6CAAAAADE0BX0AAABJUlEQVR4nO3O0WoDMQxE0eb/P7r1YSrLW1JIi0JeckHSeKRZ9vb58V/e0Yd4cfS2quFyzKgm3nK3WNVwOWZUE2+5W2yrtIBJZaL1VNSxczpOegomF8+J8rxMHkwOnhP1ik7BtMNUtKAVdT3nlJ6JnuS862QntljVOD/rZCdK3Efot4uJqB9Lz3k64kWfTEThoCN5oyZ1bEvAyWX5rWpSx7ZEyEqHHW2WOj5TItQ62NFmqTtRi6x07+6Bri0mokuuslQUh+66MhO9kngF+qXCRNSyiZszPQVOmImWik6FqN6HqagDJ3SIKh9x8IworWdvchBneVssK0tTlYLJQZzlbbGsLE2uV2mvaBWmokV0oj1/MhM98WOFCx+rKiaif+cdfYjXRL8A+QUkELIXPo0AAAAASUVORK5CYII="
  • png

img

解码

解码过程是编码过程的相反过程,这意味着我们必须将我们的QR码的base64传递给API,要解码QR码,我们需要向 /decode/<your_qrcode_base64> 发送请求

对于这个示例,我们可以使用我们在编码部分获取的base64编码的QR码

"iVBORw0KGgoAAAANSUhEUgAAADoAAAA6CAAAAADE0BX0AAABJUlEQVR4nO3O0WoDMQxE0eb/P7r1YSrLW1JIi0JeckHSeKRZ9vb58V/e0Yd4cfS2quFyzKgm3nK3WNVwOWZUE2+5W2yrtIBJZaL1VNSxczpOegomF8+J8rxMHkwOnhP1ik7BtMNUtKAVdT3nlJ6JnuS862QntljVOD/rZCdK3Efot4uJqB9Lz3k64kWfTEThoCN5oyZ1bEvAyWX5rWpSx7ZEyEqHHW2WOj5TItQ62NFmqTtRi6x07+6Bri0mokuuslQUh+66MhO9kngF+qXCRNSyiZszPQVOmImWik6FqN6HqagDJ3SIKh9x8IworWdvchBneVssK0tTlYLJQZzlbbGsLE2uV2mvaBWmokV0oj1/MhM98WOFCx+rKiaif+cdfYjXRL8A+QUkELIXPo0AAAAASUVORK5CYII="

但我们必须首先将其进行URL编码

iVBORw0KGgoAAAANSUhEUgAAADoAAAA6CAAAAADE0BX0AAABJUlEQVR4nO3O0WoDMQxE0eb%2FP7r1YSrLW1JIi0JeckHSeKRZ9vb58V%2Fe0Yd4cfS2quFyzKgm3nK3WNVwOWZUE2%2B5W2yrtIBJZaL1VNSxczpOegomF8%2BJ8rxMHkwOnhP1ik7BtMNUtKAVdT3nlJ6JnuS862QntljVOD%2FrZCdK3Efot4uJqB9Lz3k64kWfTEThoCN5oyZ1bEvAyWX5rWpSx7ZEyEqHHW2WOj5TItQ62NFmqTtRi6x07%2B6Bri0mokuuslQUh%2B66MhO9kngF%2BqXCRNSyiZszPQVOmImWik6FqN6HqagDJ3SIKh9x8IworWdvchBneVssK0tTlYLJQZzlbbGsLE2uV2mvaBWmokV0oj1%2FMhM98WOFCx%2BrKiaif%2BcdfYjXRL8A%2BQUkELIXPo0AAAAASUVORK5CYII%3D

现在我们可以解码我们的QR码

curl 'https://qr-ende.herokuapp.com/decode/iVBORw0KGgoAAAANSUhEUgAAADoAAAA6CAAAAADE0BX0AAABJUlEQVR4nO3O0WoDMQxE0eb%2FP7r1YSrLW1JIi0JeckHSeKRZ9vb58V%2Fe0Yd4cfS2quFyzKgm3nK3WNVwOWZUE2%2B5W2yrtIBJZaL1VNSxczpOegomF8%2BJ8rxMHkwOnhP1ik7BtMNUtKAVdT3nlJ6JnuS862QntljVOD%2FrZCdK3Efot4uJqB9Lz3k64kWfTEThoCN5oyZ1bEvAyWX5rWpSx7ZEyEqHHW2WOj5TItQ62NFmqTtRi6x07%2B6Bri0mokuuslQUh%2B66MhO9kngF%2BqXCRNSyiZszPQVOmImWik6FqN6HqagDJ3SIKh9x8IworWdvchBneVssK0tTlYLJQZzlbbGsLE2uV2mvaBWmokV0oj1%2FMhM98WOFCx%2BrKiaif%2BcdfYjXRL8A%2BQUkELIXPo0AAAAASUVORK5CYII%3D'

上面命令的输出将是 hello

亲自运行它

如果您想自己运行此API,您有两个选择(可能不止两个)

  • 部署到 Heroku
  • 在VPS上运行。

部署到Heroku

将API部署到Heroku是运行此API最简单的方法,您只需要在 heroko.com 中有一个账户

  1. 使用 heroku-cli 登录到您的Heroku账户
heroku login
  1. 克隆此仓库
git clone https://github.com/zolagonano/qr-api.git
  1. 使用 heroku-cli 将Heroku添加到您的远程仓库
heroku git:remote -a <your-app-name>
  1. 部署您的API
git push heroku master

在VPS上运行它

  • 如果您想在VPS上运行此项目,则需要带有nightly工具链的rustup。
  • 要安装rustup和nightly工具链,您可以查看rustup.rs

从源代码安装

  1. 克隆此仓库
git clone https://github.com/zolagonano/qr-api.git
  1. 将工作目录更改为源代码目录
cd qr-api
  1. 运行API
cargo run --release

从cargo安装

  1. 安装它
cargo install qr-api
  1. 运行它
qr-api

贡献

所有贡献都欢迎,但如果您不知道能做什么,请查看此列表

  • 如果您发现了一个错误,请打开一个问题。
  • 如果您有任何建议,请打开一个问题。
  • 修复错误并提交拉取请求。
  • 与您的朋友分享。
  • 以及您认为可能有助于此项目的任何其他事情 :)

许可证

根据MIT许可证授权。

依赖项

~26–34MB
~338K SLoC