Call post api from interface

Certified Associate Developer

Hi, 

i've a portal with some users fileds. When i compile the fields on click button i want to save this fields in my appian db using post api (i want to test the API). I wrote this code for the portal interface:

=a!localVariables(
local!nome,
local!cognome,
local!dataNascita,
local!indirizzoResidenza,
local!codiceFiscale,
{
a!textField(
label: "Nome",
value: local!nome,
saveInto: local!nome
),
a!textField(
label: "Cognome",
value: local!cognome,
saveInto: local!cognome
),
a!textField(
label: "Data di nascita",
value: local!dataNascita,
saveInto: local!dataNascita
),
a!textField(
label: "Indirizzo di residenza",
value: local!indirizzoResidenza,
saveInto: local!indirizzoResidenza
),
a!textField(
label: "Codice fiscale",
value: local!codiceFiscale,
saveInto: local!codiceFiscale
),
a!buttonLayout(
primaryButtons: {
a!buttonWidget(
label: "Invia dati",
saveInto: {
}
)
}
)
}
)

I also created a post api:

a!localVariables(
local!value: cast(
'type!{urn:com:appian:types:AHUTENTE}AH_UTENTE',
a!fromJson(http!request.body)
),
a!writeToDataStoreEntity(
dataStoreEntity: cons!AH_UTENTE_DSE_POINTER,
valueToStore: local!value,
onSuccess: a!httpResponse(
statusCode: 200,
headers: {
a!httpHeader(name: "Content-Type", value: "application/json")
},
body: a!toJson(
fv!storedValues
)
),
onError: a!httpResponse(
statusCode: 500,
headers: {
a!httpHeader(name: "Content-Type", value: "application/json")
},
body: a!toJson(
{
error: "There was an error writing to the data store"
}
)
)
)
)

Now I was wondering, how do I call the API to write to the db within the interface and pass the parameters? Do I need anything else? Sorry but I'm not very practical.

  Discussion posts and replies are publicly visible

Parents Reply
  • 0
    Certified Lead Developer
    in reply to fabiopalladino

    Yes. Now a couple of things to verify and understand. 

    1. Make sure the "Method" in integration is same as the "Method" defined in API. 
    2. In order to access the API via integration, you will have to use an authentication mechanism.
      1. Either you can provide your credentials by switching to "Basic Authentication" (WHICH I WON"T ADVICE) 
      2. Or you will have to create a service account in the Admin console, save the API key, add the account in the App's all users group and then use the API key in your integration's header
Children