69 lines
1.9 KiB
Plaintext
69 lines
1.9 KiB
Plaintext
export const metadata = {
|
||
title: `${pageNumber} API Routes`,
|
||
}
|
||
|
||
# {metadata.title}
|
||
|
||
In this chapter, you’ll learn what API routes are and how to create them.
|
||
|
||
## What is an API Route?
|
||
|
||
An API route is a REST endpoint that exposes commerce features to external applications, such as storefronts, the admin dashboard, or third-party systems.
|
||
|
||
The Medusa core application provides a set of [admin](!api!/admin) and [store](!api!/store) API routes out-of-the-box. You can also create custom API routes to expose your custom functionalities.
|
||
|
||
---
|
||
|
||
## How to Create an API Route?
|
||
|
||
You can create an API route in a TypeScript or JavaScript file under the `src/api` directory of your Medusa application. The file’s name must be `route.ts` or `route.js`.
|
||
|
||

|
||
|
||
Each file exports API route handler functions for at least one HTTP method (`GET`, `POST`, `DELETE`, etc…).
|
||
|
||
For example, to create a `GET` API route at `/hello-world`, create the file `src/api/hello-world/route.ts` with the following content:
|
||
|
||
```ts title="src/api/hello-world/route.ts"
|
||
import type {
|
||
MedusaRequest,
|
||
MedusaResponse,
|
||
} from "@medusajs/framework/http"
|
||
|
||
export const GET = (
|
||
req: MedusaRequest,
|
||
res: MedusaResponse
|
||
) => {
|
||
res.json({
|
||
message: "[GET] Hello world!",
|
||
})
|
||
}
|
||
```
|
||
|
||
### Test the API Route
|
||
|
||
To test the API route above, start the Medusa application:
|
||
|
||
```bash npm2yarn
|
||
npm run dev
|
||
```
|
||
|
||
Then, send a `GET` request to the `/hello-world` API route:
|
||
|
||
```bash
|
||
curl http://localhost:9000/hello-world
|
||
```
|
||
|
||
You should receive the following response:
|
||
|
||
```json
|
||
{
|
||
"message": "[GET] Hello world!"
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## Next Chapters: Learn More About API Routes
|
||
|
||
Follow the next chapters to learn about the different HTTP methods you can use in API routes, parameters and validation, protecting routes, and more. |