يوفر موجه Phoenix Router توجيهاً سلساً وتعبيرياً لمطابقة طلبات HTTP مع إجراءات المتحكمات وصفحات LiveView عبر مسارات تدفق pipelines معيارية.
فحص مسارات التوجيه المعرفة (Inspecting Routes)
# طباعة كافة المسارات المعرفة ودوال المساعدة
mix phx.routes
توجيه الموارد الموحدة (Resource Routing)
# توليد كافة إجراءات RESTful القياسية السبعة
resources "/users", UserController
# حصر الإجراءات المولدة
resources "/posts", PostController, only: [:index, :show]
resources "/comments", CommentController, except: [:delete]
جدول مطابقة مسارات RESTful المولدة
| HTTP Verb | Path | Action | Helper Function |
|---|---|---|---|
GET |
/users |
:index |
Routes.user_path(conn, :index) |
GET |
/users/new |
:new |
Routes.user_path(conn, :new) |
POST |
/users |
:create |
Routes.user_path(conn, :create) |
GET |
/users/:id |
:show |
Routes.user_path(conn, :show, id) |
GET |
/users/:id/edit |
:edit |
Routes.user_path(conn, :edit, id) |
PUT / PATCH |
/users/:id |
:update |
Routes.user_path(conn, :update, id) |
DELETE |
/users/:id |
:delete |
Routes.user_path(conn, :delete, id) |
الموارد المتداخلة (Nested Resources)
resources "/users", UserController do
resources "/posts", PostController
end
توليد دوال مساعدة متداخلة تلقائيا:
# Routes.user_post_path(conn, :index, user_id)
# Routes.user_post_path(conn, :show, user_id, post_id)
النطاقات ومسارات التدفق (Scopes & Pipelines)
pipeline :browser do
plug :accepts, ["html"]
plug :fetch_session
plug :protect_from_forgery
end
pipeline :api do
plug :accepts, ["json"]
end
scope "/api", MyAppWeb.Api, as: :api do
pipe_through :api
resources "/articles", ArticleController
end