2016-12-07 3 views
0

Ich suche ein Rest-API Google Cloud-Funktionen zu implementieren, aber die Bereitstellung docs scheinen zu zeigen, dass es nur möglich ist, POST-Anfragen zu verwenden:sind nur POST-Anfragen zur Verfügung mit Google Cloud-Funktionen HTTP Trigger

Jede HTTP-POST-Anfrage an den Endpunkt der Funktion (web_trigger.url Parameter der Deploy-Ausgabe) löst die Ausführung der Funktion aus. Ergebnis der Funktionsausführung wird in Antworttext zurückgegeben. - https://cloud.google.com/functions/docs/deploying/

Im Idealfall würde ich Pfade mit Wildcards suchen zu verknüpfen und über verschiedene HTTP-Methoden zum Beispiel

POST /user 
GET /user/:id 
PUT /user/:id 
DEL /user/:id 

mit den Wildcard-Werten etwas params Objekt in der Funktion Kontext wie in Rails bevölkern, Hapijs, etc.

Fragen Sie sich, ob so etwas wie oben mit Cloud-Funktionen möglich ist und ob es nicht in der Zukunft sein wird?

+0

Ich sehe Beispiele mit GET/PUT/POST unter https://cloud.google.com/functions/docs/writing/http. – jarmod

+0

@jarmod yeah, aber es wird nicht erwähnt, wie die Bereitstellung/Routenzuordnung für dieses Beispiel funktioniert und nur eine Erwähnung von POST im Bereitstellungsabschnitt der Dokumentation https://cloud.google.com/functions/docs/deploying/ –

+0

I aktualisiert wurde die Dokumentation, um den irreführenden POST-only-Text zu entfernen. –

Antwort

2

POST-only ist ein Tippfehler in der Dokumentation (oops!); Ich werde das aktualisiert bekommen. Google Cloud Function HTTP-Funktionen unterstützen GET, PUT, POST, DELETE und OPTIONS.

(Siehe die HTTP-Funktionen docs bei https://cloud.google.com/functions/docs/writing/http)

Wenn Funktion mehrere HTTP-Methoden behandeln (GET, PUT, POST usw.) muss, können Sie einfach die Methode Eigenschaft des Antrags prüfen.

Sie können die HTTP-Methode über req.method inspizieren, das heißt

switch (req.method) { 
    case 'GET': 
    handleGET(req, res); 
    break; 
    case 'PUT': 
    handlePUT(req, res); 
    break; 
    default: 
    res.status(500).send({ error: 'Something blew up!' }); 
    break; 
} 

Wie für das Routing/Mapping Teil Ihrer Frage, die derzeit jetzt gibt es nichts zusätzlich für das Routing im Rahmen des GCF. Wie immer, bleiben Sie dran, wir arbeiten ständig an neuen Funktionen!

+0

Überprüfen Sie Webfunc (https://github.com/nicolasdao/webfunc). Es unterstützt Routing für Google Cloud-Funktionen. –

Verwandte Themen