@@ -26,17 +26,19 @@ To use this as-is in your project, add the [GraphQL.AzureFunctionsProxy](https:/
2626
2727
2828## Demo Site (Star Wars)
29- This project contains a clone of the HotChocolate GraphQL * Star Wars* example project (Pure Code First version )
29+ This project contains a clone of the HotChocolate GraphQL * Star Wars* example project (Annotation based version; Pure Code First)
3030running as an AzureFunctions app and mildly updated to use the new v11 API.
3131
3232HotChocolate has changed the Execution pipeline for v11 API in many ways, and existing AzureFunctions
3333implementation samples don't account for various common use cases like BatchRequests, etc.
3434
3535### NOTES:
36361 . ** NOTE:** According to the HotChocolate team on Slack, they will provide an Official AzureFunctions
37- middleware as part of v11 (eventually). :-)
38- 2 . ** WARNING: Limited Testing has been done on this but I am actively using it on projects,
39- and will update with any findings.**
37+ middleware as part of v11 (eventually). However it will be based on the cutting edge version of
38+ Azure Functions that enable running/initializing a project exactly like a normal AspNerCore app.
39+ So this library may still help address gaps in existing Azure Function projects :-)
40+ 2 . ** NOTE: Moderate Testing has been done on this and we are actively using it on projects,
41+ and will update with any findings; we have not completed exhaustive testing of all HotChocolate functionality.**
4042
4143## Goals
4244
@@ -51,15 +53,16 @@ C# bindings, DI, and current Function invocation are maintained.
5153
5254## Implementation:
5355This approach uses a "Middleware Proxy" pattern whereby we provide the functionality of the
54- HotChocolate HTTP middleware via a proxy class that can be injected into the Azure Function,
55- but otherwise do not change the existing AzureFunctions invocation pipeline.
56+ existing HotChocolate HTTP middleware via a proxy class that can be injected into the Azure Function,
57+ but otherwise do not change the existing AzureFunctions invocation pipeline or the HotChocolate pipeline
58+ as it is configured in the application startup class.
5659
5760This Proxy exposes an "executor" interface that can process the HttpContext in an AzureFunction.
5861However, any pre/post logic could be added before/after the invocation of the executor proxy
5962* IGraphQLAzureFunctionsExecutorProxy* .
6063
6164This proxy is setup by internally configuring a Middleware Proxy that is an encapsulation of the
62- existing * HttpPostMiddleware* & * HttpGetMiddleware* configured as a simple pipeline for processing POST
65+ existing HotChocolate * HttpPostMiddleware* & * HttpGetMiddleware* configured as a simple pipeline for processing POST
6366requests first and then defaulting back to GET requests, and erroring out if neither are able to
6467handle the request.
6568
0 commit comments