Exercício – Tornar as funções RESTful

Concluído

A API do Gerenciador de Produtos está prestes a receber uma atualização de estilo séria, cortesia de você, o desenvolvedor da Tailwind Traders. Neste exercício, vai tornar todas as funções que criou anteriormente em funções RESTful ao modificar os ficheiros de configuração.

Tornar a rota GetProducts RESTful

  1. No Visual Studio Code, abra o api/src/index.ts arquivo.

  2. Na definição de rota para GetProducts, restrinja a propriedade para methods que ela contenha apenas o valor GET.

    methods: ['GET']
    
  3. Adicione a route propriedade com um valor de products para uma rota completa de /api/products.

    route: 'products',
    

    A definição completa da rota é:

    app.http('GetProducts', {
        methods: ['GET'],
        route: 'products',       // <- route: /api/products
        authLevel: 'anonymous',
        handler: GetProducts
    });
    
  4. Guarde o ficheiro.

    Nota

    Salvar o arquivo fará com que o processo do Azure Functions encerre o depurador e ele será desconectado. Não se preocupe. Não perdemos nada. Apenas fez alterações fundamentais à forma como as funções são apresentadas, pelo que será necessário reiniciar o projeto quando tiver terminado a limpeza do REST.

Tornar a função CreateProduct RESTful

  1. Ainda no api/src/index.ts arquivo, restrinja a propriedade permitida methods a POST.

    methods: ['POST']
    
  2. Adicione a route propriedade com um valor de products para uma rota completa de /api/products.

    route: 'products',
    

    A definição completa da rota é:

    app.http('CreateProduct',{
        methods: ['POST'],
        route: 'products',
        authLevel: 'anonymous',
        handler: CreateProduct
    });
    
  3. Guarde o ficheiro.

Tornar a função UpdateProduct RESTful

  1. Ainda no api/src/index.ts arquivo, restrinja a propriedade permitida methods a PUT.

    methods: ['PUT'],
    
  2. Adicione a route propriedade com um valor de products para uma rota completa de /api/products.

    route: 'products',
    

    A definição completa da rota é:

    app.http('UpdateProduct', {
        methods: ['PUT'],
        route: 'products',
        authLevel: 'anonymous',
        handler: UpdateProduct
    });
    
  3. Guarde o ficheiro.

Tornar a função DeleteProduct RESTful

  1. Ainda no api/src/index.ts arquivo, restrinja a propriedade permitida methods a DELETE.

     methods: ['DELETE']
    
  2. Atualize a rota para usar a ID do produto como um parâmetro de rota.

    route: 'products/{id}',
    

    A definição completa da rota é:

    app.http('DeleteProduct', {
        methods: ['DELETE'],
        route: 'products/{id}',
        authLevel: 'anonymous',
        handler: DeleteProduct
    });
    
  3. Guarde o ficheiro.

Iniciar o projeto

  1. Inicie o projeto das Funções do Azure ao premir F5.

  2. Observe que as URLs para seus pontos de extremidade de função agora são diferentes.

    Captura de ecrã do terminal do Visual Studio Code a mostrar os pontos finais em execução em novas rotas.

Observe esta impressionante API. É simplesmente maravilhosa. Observe como você especificou exatamente a mesma rota para as funções CreateProduct, UpdateProduct e DeleteProduct. Apenas o método de pedido HTTP é diferente. Você transformou três URLs em um, enquanto ainda tem três endpoints. É um mágico.