Skip to content

Latest commit

 

History

History
65 lines (52 loc) · 2.15 KB

header.md

File metadata and controls

65 lines (52 loc) · 2.15 KB

ヘッダー

戻る

コンテンツ

リクエストヘッダー

リクエストヘッダーを取得するには、request.headersを使ってください。

middleware/check_login.nim

import basolato/middleware

proc hasLoginId*(request:Request, params:Params):Future[Response] {.async.} =
  try:
    let loginId = request.headers["X-login-id"]
  except:
    raise newException(Error403, "Can't get login id")

app/controllers/sample_controller.nim

proc index*(request:Request, params:Params):Future[Response] {.async.} =
  let loginId = request.headers["X-login-id"]

レスポンスヘッダー

Header型

newHttpHeaders()openArray[tuple[key: string, val: string]]からHttpHeadersオブジェクトを作ります。
https://nim-lang.org/docs/httpcore.html#HttpHeaders

let headers = {
  "Strict-Transport-Security": "max-age=63072000, includeSubdomains",
  "X-Frame-Options": "SAMEORIGIN",
  "X-XSS-Protection": "1, mode=block",
  "X-Content-Type-Options": "nosniff",
  "Referrer-Policy": "no-referrer, strict-origin-when-cross-origin",
  "Cache-control": "no-cache, no-store, must-revalidate",
  "Pragma": "no-cache",
}.newHttpHeaders()

コントローラーでレスポンスにヘッダーを設定する

newHeaders()関数でHeader型のインスタンスを作り、add関数で値を追加し、最後にrender関数の末尾に置きます。

proc index*(request:Request, params:Params):Future[Response] {.async.} =
  var header = newHeaders()
  headers.add("Controller-Header-Key1", ["Controller-Header-Val1", "Controller-Header-Val2"])
  headers.add("Controller-Header-Key2", ["val1", "val2", "val3"])
  return render("with header", header)