claude-skills/

Anthropic公式スキル・プラグインの日本語ディレクトリ

last sync 22h ago
スキルKnowledge Workdeployment

🌐http-endpoints

プラグイン
Val Town

説明

HTTP valを構築する際に使用します。Webエンドポイント、APIルート、webhookレシーバー、またはHTTPリクエストに応答する任意のvalが対象です。 ハンドラーシグネチャ、Honoの使用方法、エンドポイントURL、CORS動作、リダイレクト、およびVal Town固有の制限事項をカバーしています。

原文を表示

Use when building an HTTP val — a web endpoint, API route, webhook receiver, or any val that responds to HTTP requests. Covers the handler signature, Hono usage, the endpoint URL, CORS behavior, redirects, and Val Town-specific limitations.

ユースケース

  • HTTP valを構築するとき
  • Webエンドポイントを作成するとき
  • APIルートを実装するとき
  • webhookレシーバーを設定するとき
  • HTTPリクエストに応答するvalの開発

本文

HTTP Endpoints

HTTP vals (fileType: "http") export a request handler and run on every incoming HTTP request. Each HTTP file is assigned a public live URL — never construct it yourself; read links.endpoint from list_files or create_file responses, or call fetch_val_endpoint.

Basic handler

// Learn more: https://docs.val.town/vals/http/
export default async function (req: Request): Promise<Response> {
  return Response.json({ ok: true });
}

The file must have an exportexport default for the handler.

Hono

When using Hono, export app.fetch (not app):

import { Hono } from "npm:hono";
import { parseVal, serveFile } from "https://esm.town/v/std/utils/index.ts";

const app = new Hono();

app.get("/", (c) => c.text("hello"));

// Serve all frontend files, transpiled, with correct content types
app.get("/frontend/**/*", (c) => serveFile(c.req.path));

// View source redirect
app.get("/source", (c) => c.redirect(parseVal().links.self.val));

// Always add this for full stack traces on errors:
app.onError((err) => Promise.reject(err));

export default app.fetch;

Hono's serveStatic does not work on Val Town. Use serveFile / staticHTTPServer from std/utils for static files. For the full std/utils API (readFile, serveFile, staticHTTPServer, listFiles, listFilesByPath, httpEndpoint, parseVal, …), fetch https://utilities.val.run/docs.md.

CORS

Val Town adds permissive CORS headers by default (Access-Control-Allow-Origin: *), so in 99% of cases, you should never need to do anything with CORS. Using Hono's cors middleware is almost always unnecessary.

If you set any CORS header yourself, Val Town stops adding all default headers — so either handle CORS completely yourself or don't touch it at all.

Redirects

Response.redirect is broken on Val Town. Use one of:

return new Response(null, { status: 302, headers: { Location: "/path" } });
// or, with Hono:
return c.redirect("/path");

What's not available

  • WebSockets: Val Town does not accept incoming WebSocket connections. Use polling, long polling, or server-sent events instead.
  • Filesystem access: see the platform constraints. For persistent state, use std/sqlite or std/blob.

Surfacing client-side errors

For HTML responses, add this script tag to send browser errors back to val logs (visible via get_logs):

<script src="https://esm.town/v/std/catch"></script>

Verifying changes

After editing an HTTP val, fetch it to confirm it returns the expected HTTP response. Do not report a change as done without this step.

原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。