openfaas / faas

OpenFaaS - Serverless Functions Made Simple
https://www.openfaas.com
MIT License
24.75k stars 1.92k forks source link

Question about OpenAPI Spec 3.1 #1822

Open jotando opened 7 months ago

jotando commented 7 months ago

My actions before raising this issue

Why do you need this?

I'm proofing the powerful of OpenFaas (from KinD and soon directly with faasd) but I cannot found were reach the OpenApi specifications of functions built to be inspected by tools such as serverless workflow engine (such as serverlessworkflow/synapse) is it possible today? If not, do you think the feature worth to work on? do you plan to provide this feature?

Who is this for?

This feature will insterest developpers. And in tech companies which understood the need to share components such as technical portals to all projects. I works at LabSoft where I'm evangelist of such practice.

Expected Behaviour

It could be nice that each function added could be described regarding openapi spec 3.1 and reach from json file + operation name from the root (such as https://kubernetes.docker.internal:8080/function/swagger.json#figlet)

Current Behaviour

There is no endpoint to reach the global openapi description of the whole hosted functions.

Are you a GitHub Sponsor (Yes/No?)

Check at: https://github.com/sponsors/openfaas

List All Possible Solutions and Workarounds

Which Solution Do You Recommend?

Steps to Reproduce (for bugs)

1. 2. 3. 4.

Context

## Your Environment
alexellis commented 7 months ago

Are you expecting to add a static file into your function, or are you hoping for the template to automatically write / discover the OpenAPI definitions?

We discussed the use-case on the weekly office hours call with @LucasRoesler and @nitishkumar71

jotando commented 7 months ago

Hello! I think that discovering the OpenAPI definitions could provide a function oriented version of service discovery feature. Therefore I'm hoping for the template to provide a mean to allow the discovering of OpenAPI definitions of the functions. Does it make sense?