Oefening: functies geschikt maken voor REST
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
Open het
api/src/index.ts
bestand in Visual Studio Code.Beperk de
methods
eigenschap in de routedefinitie voor GetProducts zodat deze alleen de waardeGET
bevat.methods: ['GET']
Voeg de
route
eigenschap toe met een waarde voorproducts
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 });
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
Beperk de
api/src/index.ts
toegestanemethods
eigenschap totPOST
het bestand.methods: ['POST']
Voeg de
route
eigenschap toe met een waarde voorproducts
een volledige route van/api/products
.route: 'products',
De volledige routedefinitie is:
app.http('CreateProduct',{ methods: ['POST'], route: 'products', authLevel: 'anonymous', handler: CreateProduct });
Sla het bestand op.
Make de functie UpdateProduct RESTful
Beperk de
api/src/index.ts
toegestanemethods
eigenschap totPUT
het bestand.methods: ['PUT'],
Voeg de
route
eigenschap toe met een waarde voorproducts
een volledige route van/api/products
.route: 'products',
De volledige routedefinitie is:
app.http('UpdateProduct', { methods: ['PUT'], route: 'products', authLevel: 'anonymous', handler: UpdateProduct });
Sla het bestand op.
Make de functie DeleteProduct RESTful
Beperk de
api/src/index.ts
toegestanemethods
eigenschap totDELETE
het bestand.methods: ['DELETE']
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 });
Sla het bestand op.
Het project starten
Druk op F5 om het Azure Functions-project te starten.
U ziet dat de URL's voor uw functie-eindpunten nu anders zijn.
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.