Please have a read over Format response data in ASP.NET Core Web API. There are multiple possibilities, depending on what your exact requirements are.
The simplest option is to add [Produces]
attribute to the controller action, specifying the type that's returned from the aciton:
[Produces("application/json")]
public IActionResult YourAction(int id) { ... }
The above action will return application/json
even when the return type of the action is string
.
However, it looks like you're returning two values in the string (InterfaceRecordId
and ReceiptId
). You can use built-in methods (such as Ok()
, BadRequest()
, Created()
, NotFound()
, etc) which convert the object to JSON and return a specific status code.
I would recommend returning an object containing both values, and use a convenience return method (Created()
or CreatedAtAction()
). The following returns an anonymous object and status code 201:
var successResponse = new
{
InterfaceRecordId = order.WMWDATA.Receipts.Receipt.InterfaceRecordId,
ReceiptId = order.WMWDATA.Receipts.Receipt.ReceiptId
}
return CreatedAtAction(nameof(YourAction), successResponse);
The CreatedAtAction
(and Created
) convenience methods return a 201 (created) HTTP Code - so the client will be able to infer that from the status code. And since it's returning an object (rather than a string), the return type defaults to application/json
, so there's no need for the [Produces]
attribute.