Buenas, tengo un problema y es que probando la webapi desde Appian directamente si me borra el registro que le paso por parámetro con id, pero estoy haciendo pruebas desde Postman para ver que funcionan las webapis de manera externa y cuando lanzo la de Delete me devuelve un 404 - Not Found y no hace nada, tengo otras webapis de tipo get y post que desde Postman me funcionan perfectamente con mis credenciales, no se si el problema estará en algún aspecto de la seguridad de la webapi de delete.
Muchas gracias de antemano
Discussion posts and replies are publicly visible
We would need a few more details about that API. Does that API check whether a valid value is passed and return a 404 if not?
This is the code of the API:
a!localVariables( local!value: a!queryRecordType( recordType: 'recordType!{5c6be7a8-ccde-4a6c-81fe-1a328e67f94e}PA QueryRequest', pagingInfo: a!pagingInfo(startIndex: 1, batchSize: 50), filters: a!queryFilter( field: 'recordType!{5c6be7a8-ccde-4a6c-81fe-1a328e67f94e}PA QueryRequest.fields.{28bcd982-b3cc-434d-b7d6-1852f2472506}id', operator: "=", value: tointeger(http!request.queryParameters.id), applywhen: not( isnull( tointeger(http!request.queryParameters.id) ) ) ) ).data, a!deleteRecords( records: local!value, /* * Construct an HTTP response to return to the caller */ onSuccess: a!httpResponse( statusCode: 200, /* * Set an HTTP header that tells the client that the body of the response will be in JSON format */ headers: { a!httpHeader( name: "Content-Type", value: "application/json" ) }, ), onError: a!httpResponse( statusCode: 500, headers: { a!httpHeader( name: "Content-Type", value: "application/json" ) }, body: a!toJson( a!map( message: "Delete request has failed", error: fv!error ) ) ) ))
The API only asks for the id of the record to delete
Interesting implementation. What would happen when I do not pass an ID?
So the API does not return a 404. For me this looks like a problem in the postman setup.
Shouldn't be a problem with the postman setup, I'm using the same credentials to do another queries of type get and post and there is no problem with them. Got that I need to control if no id is passed, will implement it but anyways that's not related with the problem I have.
Buenas Adolfo,
Cuando una web api te devuelve un 404, suele estar relacionado con un problema de seguridad. Asegurate que estas pasando las credenciales correctamente (dependiendo de si estas usando basic o un API KEY para mapear contra un cuenta de servicio)
Si como comentas, te funciona de la misma forma con otras web apis, es posible que sea porque falte por añadir tu usuario al grupo con permisos sobre esta nueva que has creado . ¿Puedes chequearlo por favor?
Buenos días David, para la aplicacion solo existen dos grupos creados, uno de Administradores y otro de Users, mi usuario está en el grupo de Administradores por lo que tiene acceso a todo, incluso a lanzar cualquiera de las APIs, entiendo que con eso ya debería funcionar, no sé si por culpa de que sea una API de tipo DELETE cambia algo a la hora de seguridad pero en principio la API y su seguridad siguen la misma línea que el resto, el grupo Administradores de la aplicación tiene permisos de Administrador para cada API creada
Prueba a hacer la petición a la web api desde postman para ver si te funciona correctamente.
Nada, me sigue saliendo lo mismo de siempre.
Hola, sigo con este problema, alguien que me pueda dar una solución?
Haz una prueba sencilla para ver si es tema de implementacion o de seguridad.... Cambia el codigo de la web api para q haga un "Hola Mundo", y pruebala de nuevo.
Si te funciona, será problema de la implementacion que tengas, en caso contrario, es tema de seguridad.