-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: add routing cheatsheet (#5605)
- Loading branch information
Showing
2 changed files
with
85 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
# Routing cheatsheet | ||
|
||
> Those need to be declared in the correct router module and scope. | ||
|
||
A quick reference to the common routing features' syntax. For an exhaustive overview, refer to the [routing guides](routing.md). | ||
|
||
## Routing declaration | ||
{: .col-2} | ||
|
||
### Single route | ||
|
||
```elixir | ||
get "/users", UserController, :index | ||
patch "/users/:id", UserController, :update | ||
``` | ||
```elixir | ||
# generated routes | ||
~p"/users" | ||
~p"/users/9" # user_id is 9 | ||
``` | ||
Also accepts `put`, `patch`, `options`, `delete` and `head`. | ||
|
||
### Resources | ||
|
||
#### Simple | ||
|
||
```elixir | ||
resources "/users", UserController | ||
``` | ||
Generates `:index`, `:edit`, `:new`, `:show`, `:create`, `:update` and `:delete`. | ||
|
||
#### Options | ||
|
||
```elixir | ||
resources "/users", UserController, only: [:show] | ||
resources "/users", UserController, except: [:create, :delete] | ||
resources "/users", UserController, as: :person # ~p"/person" | ||
``` | ||
|
||
#### Nested | ||
|
||
```elixir | ||
resources "/users", UserController do | ||
resources "/posts", PostController | ||
end | ||
``` | ||
```elixir | ||
# generated routes | ||
~p"/users/3/posts" # user_id is 3 | ||
~p"/users/3/posts/17" # user_id is 3 and post_id = 17 | ||
``` | ||
For more info check the [resources docs.](routing-1.html#resources) | ||
|
||
### Scopes | ||
|
||
#### Simple | ||
```elixir | ||
scope "/admin", HelloWeb.Admin do | ||
pipe_through :browser | ||
|
||
resources "/users", UserController | ||
end | ||
``` | ||
```elixir | ||
# generated path helpers | ||
~p"/admin/users" | ||
``` | ||
|
||
#### Nested | ||
```elixir | ||
scope "/api", HelloWeb.Api, as: :api do | ||
pipe_through :api | ||
|
||
scope "/v1", V1, as: :v1 do | ||
resources "/users", UserController | ||
end | ||
end | ||
``` | ||
```elixir | ||
# generated path helpers | ||
~p"/api/v1/users" | ||
``` | ||
For more info check the [scoped routes](routing.md#scoped-routes) docs. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters