app.MapPut("/author/{authorId:int:min(1)}/books/{count:int:min(1)}",
    (int authorId, int count) => $"Author with Id {authorId} has written {count} books.");

Exemplo de uma restrição de rota em ação

Por fim, vamos examinar como podemos especificar restrições de rota ao passar objetos e tipos de dados primitivos (char, int, etc.) como parâmetros. Considere o seguinte endpoint HTTP Post, que adiciona um novo autor e o número de livros de autoria a um banco de dados.


app.MapPost("/authors/{count:int:min(1)}", (Author author, int count) =>
  Results.Ok($"1 new author record of an author who has written {count} " +
    $"books has been added to the database...")
);

Vamos invocar esse endpoint usando o Postman. Enviaremos os seguintes dados JSON para nosso novo autor no corpo da solicitação.


{
  "authorId": "1",
  "firstName": "Joydip",
  "lastName": "Kanjilal",
  "address": "Hyderabad, India",
  "email": "[email protected]",
  "phone": "1234567890"
}

Nossa restrição de rota exige que também especifique a contagem de livros escritos pelo autor no URL. Além disso, exige que a contagem seja um valor inteiro mínimo de 1. A Figura 1 mostra a saída no Postman quando passarmos uma contagem de 5.