第 3 章は Custom Header をリクエストとレスポンスに追加してみましょう。
まずは Edge からのレスポンスにカスタムヘッダーを追加します。
src/main.rs
use fastly::http::StatusCode;
use fastly::{mime, Error, Request, Response};
#[fastly::main]
fn main(_: Request) -> Result<Response, Error> {
let mut resp = Response::from_status(StatusCode::OK)
.with_content_type(mime::TEXT_HTML_UTF_8)
.with_body(include_str!("welcome-to-compute@edge.html"));
resp.set_header("X-Custom-Header", "from edge");
Ok(resp)
}
サーバーを起動して確認してみましょう。
$ fastly compute serve
次に、リクエストヘッダーにカスタムヘッダーを追加します。
この時に確認しやすいように httpbin.org という便利なサービスを使います。
httpbin.org を Fastly の backend として設定します。
fastly.toml
[local_server]
[local_server.backends]
[local_server.backends.backend_a]
url = "https://httpbin.org"
実装を書き換えます。
src/main.rs
use fastly::{Error, Request, Response};
#[fastly::main]
fn main(mut req: Request) -> Result<Response, Error> {
req.set_header("X-Custom-Header", "from edge");
let resp = req.send("backend_a")?;
Ok(resp)
}
リクエストにカスタムヘッダーを追加し、サーバーを再起動して cURL を送ってみます。
実装は konojunya/fastly-compute-at-edge-guide - Custom Header においているので参照ください。