# Como criar problemas

Bate-papo do Copilot pode ajudá-lo a criar problemas rapidamente sem preencher todos os campos manualmente.

Criar problemas manualmente pode ser demorado. Bate-papo do Copilot permite criar problemas a partir de linguagem natural e preenche automaticamente o título, o corpo, os rótulos e outros metadados com base no seu comando.

## Cenário de exemplo

Você está trabalhando em um serviço de API e precisa adicionar a validação do lado do servidor ao `createUser` endpoint. Em vez de redigir a questão manualmente, use Bate-papo do Copilot para gerar uma descrição detalhada da mesma, que inclui um exemplo de implementação do middleware de validação.

O trecho de código a seguir mostra a implementação atual da `createUser` rota, antes da adição da validação.

```javascript
// Route
app.post('/users', validateCreateUser, (req, res) => {
  const { username, email } = req.body;
  // Simulate user creation
  res.status(201).json({ message: 'User created', user: { username, email } });
});
```

## Solicitação de exemplo

`In octo-org/octo-repo, create an issue to add server-side validation for the createUser API endpoint. Include an example of how to validate the request body using an existing middleware pattern. Label it with "backend" and "enhancement".`

## Resposta de exemplo

> [!NOTE] A resposta a seguir é um exemplo. Respostas do Bate-papo do Copilot são não determinísticas, portanto, você pode obter uma resposta diferente da mostrada aqui.

Quando você envia o prompt, Bate-papo do Copilot gera um problema de rascunho com base na sua descrição e inclui um trecho de código. Você pode examinar e editar o rascunho antes de criar o issue.

```markdown
## Problem
The `createUser` API endpoint currently lacks robust server-side validation for incoming requests. To ensure data integrity and security, we should validate the request body before proceeding with user creation.

**Current API endpoint:**
// Route
app.post('/users', validateCreateUser, (req, res) => {
  const { username, email } = req.body;
  // Simulate user creation
  res.status(201).json({ message: 'User created', user: { username, email } });
});

## Proposal
- Add server-side validation for the request body using the existing middleware pattern.
- Ensure required fields (`username`, `email`) are present and valid.
- Return a 400 Bad Request response if validation fails.

**Example (middleware pattern):**
function validateCreateUser(req, res, next) {
  const { username, email } = req.body;
  if (!username || !email) {
    return res.status(400).json({ error: 'Username and email are required.' });
  }
  // Additional validation logic here
  next();
}

app.post('/users', validateCreateUser, (req, res) => {
  // ...
});

## Acceptance Criteria
- Server-side validation middleware is added to the `createUser` endpoint.
- Request body is properly validated.
- Appropriate error responses are returned for invalid requests.
```