Azure / Azure/azure-functions-java-worker

reorder arguments resolving logics to full support middleware - V5 - breaking change.

Open
#648 0 comments 0 reactions 1 assignee Claimed by @kaibocai View on GitHub
Enhancement Needs: Triage (Functions) reviewed V5
Dominant language
Java
Stars
103
Forks
74
Avg merge
4d 8h
Merged PRs (30d)
2

Description

For today's middleware support logics we are convert the parameter payload to String for middleware to consume during the invocation request at https://github.com/Azure/azure-functions-java-worker/blob/679e5618010d6c3b68b48654048c268b7274a116/src/main/java/com/microsoft/azure/functions/worker/binding/ExecutionContextDataSource.java#L120,

This has limitation as middleware is getting the payload that already got transferred to String type. Middleware may want to use the original type of parameter payload which build by java worker. I see from two advantages of this approach:
- Give more fliexibility to middleware when they want to play around the input parameter payload, not only restrict payload type to String.
- Reduce the repeat work we already did in the worker - convert the payload type from GRPC type to corresponding java type. Currently without this we are trying to did the same worker for middleware only different we convert all GRPC type to String.

Attached the potential PR here https://github.com/Azure/azure-functions-java-worker/tree/kaibocai/v5-bench

Potential break changes:

- Unique Parameter Name: https://github.com/Azure/azure-functions-java-worker/blob/305a00a0ce322c72a49a0f779dde1c41d37a5fc7/src/main/java/com/microsoft/azure/functions/worker/broker/ParameterResovler.java#L23

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.