Skip to content

Latest commit

 

History

History
82 lines (65 loc) · 2.34 KB

routing.md

File metadata and controls

82 lines (65 loc) · 2.34 KB

ルーティング

戻る

ルーティングはmain.nimに書かれます。これはBasolatoのエントリーポイントでもあります。

import basolato
import app/controllers/some_controller

let ROUTES = @[
  Route.get("/", some_controller.index),
  Route.post("/", some_controller.create)
]

serve(ROUTES)

目次

HTTP動詞

以下のHTTP動詞が使えます。

動詞 説明
get 一覧取得
post 新規作成
put 一つのデータの更新
patch 一つのデータの更新
delete 一つのデータの削除
head レスポンスボディ無しで同じレスポンスを取得する
options Axios/JavaScriptCurl/shのようなクライアントAPIソフトウェアによるpost/put/patch/delete/アクセス前にレスポンスヘッダのリストを取得する
trace 対象リソースへのパスに沿ってメッセージのループバックテストを実行します。
connect 対象リソースで識別されるサーバーとの間にトンネルを確立します。

ルーティンググループ

import basolato
import app/controllers/some_controller
import app/controllers/dashboard_controller


let ROUTES = @[
  Route.get("/", some_controller.index),
  Route.group("/dashboard", @[
    Route.get("/url1", dashboard_controller.url1),
    Route.get("/url2", dashboard_controller.url2)
  ])
]

/dashboard/url1/dashboard/url2が有効なURLになります。

URLパラメータ

BasolatoはURLパラメータをintstrを使って型指定することができます。

import basolato
import app/controllers/some_controller


let ROUTES = @[
  Route.get("/{id:int}", some_controller.show),
  Route.get("/{name:str}", some_controller.showByName)
]
リクエストURL 呼ばれるコントローラー
/1 some_controller.show
/100 some_controller.show
/john some_controller.showByName
/1/john not match and responde 404