Oefening: functies geschikt maken voor REST

Voltooid

De Products Manager-API staat op het punt om een serieuze upgrade van stijl te krijgen, met dank aan u, de ontwikkelaar van Tailwind Traders. In deze oefening maakt u RESTful functies van alle functies die u eerder hebt gemaakt door hun configuratiebestanden aan te passen.

De GetProducts-route RESTful maken

  1. Open het api/src/index.ts bestand in Visual Studio Code.

  2. Beperk de methods eigenschap in de routedefinitie voor GetProducts zodat deze alleen de waarde GETbevat.

    methods: ['GET']
    
  3. Voeg de route eigenschap toe met een waarde voor products een volledige route van /api/products.

    route: 'products',
    

    De volledige routedefinitie is:

    app.http('GetProducts', {
        methods: ['GET'],
        route: 'products',       // <- route: /api/products
        authLevel: 'anonymous',
        handler: GetProducts
    });
    
  4. Sla het bestand op.

    Notitie

    Als u het bestand opslaat, wordt het foutopsporingsprogramma beëindigd door het Azure Functions-proces en wordt de verbinding verbroken. Geen nood: u hebt niets kapot gemaakt. U hebt fundamentele veranderingen aangebracht in de manier waarop de functies worden gebruikt, dus u zult het project opnieuw moeten opstarten wanneer u klaar bent met deze grote REST-transformatie.

De functie CreateProduct RESTful maken

  1. Beperk de api/src/index.ts toegestane methods eigenschap tot POSThet bestand.

    methods: ['POST']
    
  2. Voeg de route eigenschap toe met een waarde voor products een volledige route van /api/products.

    route: 'products',
    

    De volledige routedefinitie is:

    app.http('CreateProduct',{
        methods: ['POST'],
        route: 'products',
        authLevel: 'anonymous',
        handler: CreateProduct
    });
    
  3. Sla het bestand op.

Make de functie UpdateProduct RESTful

  1. Beperk de api/src/index.ts toegestane methods eigenschap tot PUThet bestand.

    methods: ['PUT'],
    
  2. Voeg de route eigenschap toe met een waarde voor products een volledige route van /api/products.

    route: 'products',
    

    De volledige routedefinitie is:

    app.http('UpdateProduct', {
        methods: ['PUT'],
        route: 'products',
        authLevel: 'anonymous',
        handler: UpdateProduct
    });
    
  3. Sla het bestand op.

Make de functie DeleteProduct RESTful

  1. Beperk de api/src/index.ts toegestane methods eigenschap tot DELETEhet bestand.

     methods: ['DELETE']
    
  2. Werk de route bij om de product-id als routeparameter te gebruiken.

    route: 'products/{id}',
    

    De volledige routedefinitie is:

    app.http('DeleteProduct', {
        methods: ['DELETE'],
        route: 'products/{id}',
        authLevel: 'anonymous',
        handler: DeleteProduct
    });
    
  3. Sla het bestand op.

Het project starten

  1. Druk op F5 om het Azure Functions-project te starten.

  2. U ziet dat de URL's voor uw functie-eindpunten nu anders zijn.

    Schermopname van de Visual Studio Code-terminal met weergave van eindpunten die worden uitgevoerd op nieuwe routes.

Kijk toch eens naar die API. Echt een plaatje. U ziet hoe u dezelfde route hebt opgegeven voor de functies CreateProduct, UpdateProduct en DeleteProduct. Alleen de HTTP-aanvraagmethode is anders. U hebt drie URL's omgezet in één, terwijl u nog steeds drie eindpunten hebt. Het lijkt wel magie.