deno.com
本页内容

简单的 API 服务器

Deno 非常适合创建简单、轻量级的 API 服务器。 学习如何使用 Deno Deploy 创建和部署一个,在本教程中。

创建一个本地 API 服务器 跳转到标题

在你的终端中,创建一个名为 server.ts 的文件。

touch server.ts

我们将使用 Deno KV 数据库来实现一个简单的链接缩短服务。

server.ts
const kv = await Deno.openKv();

Deno.serve(async (request: Request) => {
  // Create short links
  if (request.method == "POST") {
    const body = await request.text();
    const { slug, url } = JSON.parse(body);
    const result = await kv.set(["links", slug], url);
    return new Response(JSON.stringify(result));
  }

  // Redirect short links
  const slug = request.url.split("/").pop() || "";
  const url = (await kv.get(["links", slug])).value as string;
  if (url) {
    return Response.redirect(url, 301);
  } else {
    const m = !slug ? "Please provide a slug." : `Slug "${slug}" not found`;
    return new Response(m, { status: 404 });
  }
});

你可以使用以下命令在你的机器上运行此服务器

deno run -A --unstable-kv server.ts

此服务器将响应 HTTP GETPOST 请求。POST 处理程序期望在请求正文中接收一个 JSON 文档,其中包含 slugurl 属性。slug 是短 URL 组件,url 是你想重定向到的完整 URL。

这是一个使用 cURL 调用此 API 端点的示例

curl --header "Content-Type: application/json" \
  --request POST \
  --data '{"url":"https://docs.deno.org.cn/runtime/manual","slug":"denodocs"}' \
  https://127.0.0.1:8000/

作为响应,服务器应向你发送 JSON,其中包含 KV 数据,表示 set 操作的结果

{ "ok": true, "versionstamp": "00000000000000060000" }

对我们服务器的 GET 请求将采用 URL slug 作为路径参数,并重定向到提供的 URL。你可以在浏览器中访问此 URL,或进行另一个 cURL 请求以查看实际效果!

curl -v https://127.0.0.1:8000/denodocs

现在我们有了一个 API 服务器,让我们把它推送到 GitHub 仓库,稍后我们将链接到 Deno Deploy。

为你的应用创建一个 GitHub 仓库 跳转到标题

登录 GitHub创建一个新仓库。现在你可以跳过添加 README 或任何其他文件 - 一个空白仓库对于我们的目的来说就足够了。

在你创建 API 服务器的文件夹中,按顺序使用以下命令初始化一个本地 git 仓库。请务必将 your_usernameyour_repo_name 替换为适当的值。

echo "# My Deno Link Shortener" >> README.md
git init
git add .
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/your_username/your_repo_name.git
git push -u origin main

现在你应该有一个 GitHub 仓库,其中包含你的 server.ts 文件,如 此示例仓库 中所示。现在你已准备好在 Deno Deploy 上导入和运行此应用程序。

导入并部署你的项目 跳转到标题

接下来,注册一个 Deno Deploy 帐户并 创建一个新项目。连接你的 GitHub 帐户并选择我们刚才创建的仓库。

Deno Deploy project selection

配置应如下所示

Deno Deploy config

单击“部署项目”按钮。部署完成后,你的链接缩短服务将在 Deno Deploy 上上线!

Deno Deploy dashboard

无需任何额外配置(Deno KV 在 Deploy 上开箱即用),你的应用应该像在本地机器上一样运行。

你可以像以前一样使用 POST 处理程序添加新链接。只需将 localhost URL 替换为你在 Deno Deploy 上的实时生产 URL

curl --header "Content-Type: application/json" \
  --request POST \
  --data '{"url":"https://docs.deno.org.cn/runtime/","slug":"denodocs"}' \
  https://your-deno-project-url-here.deno.dev/

同样,你可以在浏览器中访问你缩短的 URL,或使用 cURL 命令查看返回的重定向

curl -v https://your-deno-project-url-here.deno.dev/denodocs

如果你喜欢这个项目,接下来你可以查看更高级别的 Web 框架,如 Fresh,或在此处了解更多关于 Deno KV 的信息。 部署你的简单 API 服务器,干得漂亮!

你找到你需要的东西了吗?

隐私政策