[docs] document how root routes coexist with dynamic api routes (#11591)

* document how root routes coexist with dynamic api routes

document how root routes coexist with dynamic api routes - related to https://github.com/zeit/next.js/issues/11542

* Update dynamic-api-routes.md

* Update dynamic-api-routes.md

* Run prettier

Co-authored-by: Tim Neutkens <timneutkens@me.com>
This commit is contained in:
swyx 2020-04-02 17:05:01 +08:00 committed by GitHub
parent b48db989bb
commit 4adab3d4b0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -20,6 +20,25 @@ export default (req, res) => {
Now, a request to `/api/post/abc` will respond with the text: `Post: abc`.
### Index routes and Dynamic API routes
A very common RESTful pattern is to set up routes like this:
- `GET api/posts/` - gets a list of posts, probably paginated
- `GET api/posts/12345` - gets post id 12345
We can model this in two ways:
- Option 1:
- `/api/posts.js`
- `/api/posts/[postId].js`
- Option 2:
- `/api/posts/index.js`
- `/api/posts/[postId].js`
Both are equivalent. A third option of only using `/api/posts/[postId].js` is not valid because Dynamic Routes (including Catch-all routes - see below) do not have an `undefined` state and `GET api/posts/` will not match `/api/posts/[postId].js` under any circumstances.
### Catch all API routes
API Routes can be extended to catch all paths by adding three dots (`...`) inside the brackets. For example: