API Action Input Data fields do not show in Action Editor

Wappler Version: 5.4.2
Operating System: Windows 11
Server Model: Capacitor
Database Type: N/A
Hosting Type: N/A

Expected behavior

Defined Input Data fields for API Action should show in the Actions Editor

Actual behavior

The Input Data fields do not show. Only Query Parameter fields are available.

How to reproduce

  1. Create an API action and define Input Data fields.
  2. Create a dynamic event and load the API Action.

I might be able to help. I spend a lot of time working with API’s

What are you trying to accomplish? is this is an API form or a server side API?

Hi @ryanmorrow, it’s an API Action. They allow you to call any API. In this case I’m using it to connect to a Wappler server API/Server Connect. The problem is the “Input Data” fields are not shown in the Actions Editor, so unless you know of a dmx code that will work to bind the dynamic values then I’m not sure there’s much we’ll be able to do.

I think this is something that @patrick or @George will need to correct.

I don’t want to clutter my page with multiple FORMs and using one API Action that I can dynamically pass values into is a much simpler approach.

makes sense. I have used the API Action before, in the previous case I had access to the fields. I have run into several funky issues such as the schemas not loading, etc.

You had access to the Input Data fields in the Actions Editor? If so, do you know what the dmx code is when you add a dynamic value?

let me look back at that project.

@George is this something that can be fixed?

Bumping for support

Maybe today’s my day that this will get assigned? :slight_smile:

I’m afraid that the load action doesn’t have an argument for setting the data. The input data is already dynamic data, you bind it to the data that needs to be posted and when that data is updated you just call the load action and it will post the updated data. Original the load action was intended for refreshing the data on your page and not for sending data to the server.

Thanks for responding @patrick. So no component allows me to define an API connection once and pass values to it dynamically?

My use case is being able to save individual field values on field change.

Here’s an example. I have a repeat of task records. Each task has a few fields (Assignee, Status, etc) that can be changed without going into the full task edit form. On change of value, it should send a POST to the database.

I don’t want to wrap each individual field into its own form. The API action is the closest component I see that could potentially be defined once on the page and then pass values into it if only the input data fields were available in the load action. I also don’t see a way to pass the individual repeat task’s values into the API action’s input data.

Hi, Keith!
Have you tried to use variables?

You can create variables that duplicate your input data. And bind input data to them.

And then, in the action editor, in the first step you pass needed values to those variables and in the second step you start your API action.

I believe it is what Patrik is talking about.

Hi @nickneustroev, I started down that path, but ran into the issue/bug linked below. Maybe variables is the direction I need to go after getting confirmation from @patrick if the Input Data fields in the API Action can stop changing the name to lowercase.

I could go back and rename all of my POST variables in the server and across my client app, but it’s annoying that this functions different than Server Connect. Server Connect creates POST variables that match the database field name. So TaskId database field typically has a POST.TaskId variable and most of the app I’ve already built follows this convention.

Got it. Strange bug indeed.

This has been discussed a few times already. Please check this topic for example:

So my only options are littering my app with forms or going through every existing POST variable, and input name, to make them lowercase?

Not sure what you mean by:

Forms are pretty standard way of sending data to the server side. In your example above i don’t see a reason why would you need to:

you only need one form on the page.

All of these arrows are areas where I would have to wrap a form around them or go back and change the POST.variables & input names to lowercase to use API Action.

Every tab (activities, notes, emails, calls, tasks, meetings) will have similar repeats and fields.

why would you need to wrap a form around each field? You just need a form with a repeat inside, on input value change you can trigger form submit and update the data. There’s even a multi update action in server connect for that :slight_smile: