# Request & Reply Objects — Fastify

Source: https://www.geekswithgeeks.com/en/fastify/ff-request-reply

> Understand the core objects that handle HTTP communication.

## request and reply

`request` contains the incoming HTTP request details (URL, headers, body, params, query). `reply` is an object with methods to send the response—it's pooled for performance.

## Reading request data

Access path params, query strings, headers, and body from the request object.

```javascript
fastify.get('/users/:id', async (request, reply) => {
  const { id } = request.params;
  const { filter } = request.query;
  const token = request.headers.authorization;
  
  return { userId: id, filter, hasToken: !!token };
});
```

## Sending replies

Return an object (auto-serialized to JSON) or use `reply` methods for custom status codes and headers.

```javascript
fastify.post('/items', async (request, reply) => {
  // Auto-JSON serialization
  return { id: 1, status: 'created' };
});

fastify.delete('/items/:id', async (request, reply) => {
  // Custom status and location header
  return reply.status(204).send();
});
```
