POST method of REST web service inserts a record but does not generate a response
Irrespective of using Table or Import Set API, when you use POST method from a REST web service, a record is inserted in the target table but does not see anything in the Response body. Only "Response Headers" brings some inputs, but "Response Body" is empty.
This is considering you have already assigned the rest_service role to the sys_user record you're using for this integration. Additionally, when you assign the admin role to your integration user record, the response appears in "Response Body".
This is an ACL-related issue. There is a write ACL in every ServiceNow instance with the name *.sys_id. In general, this ACL comes as inactive in the base system. When customers activate this ACL, they face this problem.
- Enable system property glide.rest.debug.
- Run the POST method and insert a record in target table.
- When you check REST debug logs, you see the following message:
WARNING *** WARNING *** [REST API] TableAPIService : Created record can't be read. No Record found
Choose one of solutions below that suits you best:
- Deactivate this ACL.
- If you activated this ACL due to some business requirement, create one more write ACL and give it the role rest_service.
|Note: REST Logging includes processing durations, headers, and the request body. Prolonged use of this property can affect performance, so it is best to use it while debugging REST processing, and then set the property back to false.|