web-api
  1. web-api-using-routeprefix-attribute

Using RoutePrefix Attribute - (Web API Attribute Routing)

The RoutePrefix attribute in Web API Attribute Routing allows you to specify a common prefix for all routes in a controller. This can be useful for organizing your Web API routes and making them more readable.

Syntax

To use the RoutePrefix attribute in Web API Attribute Routing, you can add it to the controller class in your Web API project. Here is an example:

[RoutePrefix("api/mycontroller")]
public class MyController : ApiController
{
    // ...
}

Example

Here is an example of how to use the RoutePrefix attribute in Web API Attribute Routing:

[RoutePrefix("api/products")]
public class ProductsController : ApiController
{
    // GET api/products
    [HttpGet]
    public IEnumerable<string> GetAllProducts()
    {
        return new string[] { "product1", "product2" };
    }

    // GET api/products/5
    [HttpGet]
    [Route("{id}")]
    public IHttpActionResult GetProduct(int id)
    {
        return Ok("product" + id);
    }

    // POST api/products
    [HttpPost]
    public IHttpActionResult AddProduct([FromBody]string value)
    {
        // add product to database...
        return Created(Request.RequestUri + "/" + value, value);
    }
}

This example defines a ProductsController class with a RoutePrefix attribute of "api/products". The controller includes three action methods: GetAllProducts, GetProduct, and AddProduct. The GetAllProducts method responds to a GET request to api/products, the GetProduct method responds to a GET request to api/products/{id}, and the AddProduct method responds to a POST request to api/products.

Output

When you run this Web API project and make a GET request to api/products, you should receive a response with the JSON array ["product1","product2"].

When you make a GET request to api/products/5, you should receive a response with the string "product5".

When you make a POST request to api/products with a string in the request body, you should receive a 201 Created response with a Location header indicating the URI of the newly created

Published on: