# 核心 API 介绍

URL: https://caijiao.org/fastify/core/core-api
Source: docs/fastify/core/core-api.md
Description: 介绍 Fastify 中常用的核心 API，包括路由注册、请求与响应对象、日志等。

[Fastify](/fastify/) 提供一套精简且功能强大的核心 API，开发者可以快速构建结构清晰、性能优越的 Web 服务。

## 路由注册

使用 `fastify.get/post/put/delete` 等方法注册路由：

```js
fastify.get('/hello', async (request, reply) => {
  return { msg: 'Hello' };
});
```

支持异步函数或回调形式。默认返回值会被序列化为 JSON。

## request 对象

封装了客户端请求的相关信息：

- `request.query`：查询参数
- `request.params`：路径参数
- `request.body`：请求体（需启用 body 解析）
- `request.headers`：请求头

示例：

```js
fastify.post('/login', async (request) => {
  const { username, password } = request.body;
  // 业务处理...
});
```

## reply 对象

用于构建响应内容：

- `reply.send(data)`：发送响应
- `reply.code(statusCode)`：设置状态码
- `reply.header(name, value)`：设置响应头

示例：

```js
fastify.get('/custom', (request, reply) => {
  reply.code(201).header('x-custom', 'yes').send({ ok: true });
});
```

## 日志记录

Fastify 默认集成了 Pino 日志系统：

```js
const fastify = require('fastify')({ logger: true });

fastify.log.info('服务正在启动...');
```

每个 request 也自带 `request.log` 和 `reply.log`。
