using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Volo.Abp.Application.Services; using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.UI; namespace Volo.Abp.Http.DynamicProxying { [Route("api/regular-test-controller")] [RemoteService] //Automatically enables API explorer and apply ABP conventions. //[ApiExplorerSettings(IgnoreApi = false)] //alternative public class RegularTestController : AbpController, IRegularTestController { [HttpGet] [Route("increment/{value}")] //full URL: .../api/regular-test-controller/increment/{value} public int IncrementValue(int value) { return value + 1; } [HttpGet] [Route("increment")] public Task IncrementValueAsync(int value) { return Task.FromResult(value + 1); } [HttpGet] [Route("get-exception1")] public Task GetException1Async() { throw new UserFriendlyException("This is an error message!"); } [HttpPost] [Route("post-with-header-and-qs")] public Task PostValueWithHeaderAndQueryStringAsync([FromHeader] string headerValue, [FromQuery] string qsValue) { return Task.FromResult(headerValue + "#" + qsValue); } [HttpPost] [Route("post-with-body")] public Task PostValueWithBodyAsync([FromBody] string bodyValue) { return Task.FromResult(bodyValue); } [HttpPost] [Route("post-object-with-body")] public Task PostObjectWithBodyAsync([FromBody] Car bodyValue) { return Task.FromResult(bodyValue); } [HttpPost] [Route("post-object-with-query")] public Task PostObjectWithQueryAsync( Car bodyValue) { return Task.FromResult(bodyValue); } [HttpGet] [Route("post-object-with-url/bodyValue")] public Task GetObjectWithUrlAsync(Car bodyValue) { return Task.FromResult(bodyValue); } [HttpGet] [Route("post-object-and-id-with-url/{id}")] public Task GetObjectandIdAsync(int id, [FromBody] Car bodyValue) { bodyValue.Year = id; return Task.FromResult(bodyValue); } [HttpGet] [Route("post-object-and-id-with-url-and-query/{id}")] public Task GetObjectAndIdWithQueryAsync(int id, Car bodyValue) { bodyValue.Year = id; return Task.FromResult(bodyValue); } [HttpPut] [Route("put-with-body")] public Task PutValueWithBodyAsync([FromBody] string bodyValue) { return Task.FromResult(bodyValue); } [HttpPut] [Route("put-with-header-and-qs")] public Task PutValueWithHeaderAndQueryStringAsync([FromHeader] string headerValue, [FromQuery] string qsValue) { return Task.FromResult(headerValue + "#" + qsValue); } [HttpPatch] [Route("patch-with-header-and-qs")] public Task PatchValueWithHeaderAndQueryStringAsync([FromHeader] string headerValue, [FromQuery] string qsValue) { return Task.FromResult(headerValue + "#" + qsValue); } [HttpPatch] [Route("patch-with-body")] public Task PatchValueWithBodyAsync([FromBody] string bodyValue) { return Task.FromResult(bodyValue); } [HttpDelete] [Route("delete-by-id")] public Task DeleteByIdAsync(int id) { return Task.FromResult(id + 1); } } public class Car { [FromQuery] public int Year { get; set; } [FromQuery] public string Model { get; set; } } }