docs: add examples for index.ts files on server routes (#23390)

Co-authored-by: Sébastien Chopin <seb@nuxtlabs.com>
Co-authored-by: Sébastien Chopin <seb@nuxt.com>
This commit is contained in:
Filip Weidemann 2023-09-27 16:13:03 +02:00 committed by GitHub
parent 7005a66d9a
commit d788577fc2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -180,6 +180,38 @@ Given the example above, fetching `/test` with:
- **POST** method: Returns `Test post handler` - **POST** method: Returns `Test post handler`
- Any other method: Returns 405 error - Any other method: Returns 405 error
You can also use `index.[method].ts` inside a directory for structuring your code differently.
**Example:**
```ts [server/api/foo/index.ts]
export default defineEventHandler((event) => => {
// handle the `api/foo` endpoint
})
```
This is useful to create API namespaces.
**Example:**
```ts [server/api/foo/index.get.ts]
export default defineEventHandler((event) => => {
// handle GET requests for the `api/foo` endpoint
})
```
```ts [server/api/foo/index.post.ts]
export default defineEventHandler((event) => => {
// handle POST requests for the `api/foo` endpoint
})
```
```ts [server/api/foo/bar.get.ts]
export default defineEventHandler((event) => => {
// handle GET requests for the `api/foo/bar` endpoint
})
```
### Catch-all Route ### Catch-all Route
Catch-all routes are helpful for fallback route handling. For example, creating a file named `~/server/api/foo/[...].ts` will register a catch-all route for all requests that do not match any route handler, such as `/api/foo/bar/baz`. Catch-all routes are helpful for fallback route handling. For example, creating a file named `~/server/api/foo/[...].ts` will register a catch-all route for all requests that do not match any route handler, such as `/api/foo/bar/baz`.