1

I am new to asp.net Web Api. I create a simple Web Api App with a ValuesController

What will I get when I make a request :

api/values/5

when there are:

public string Get(int id) { }
public void Delete(int id) { }

methods in the controller.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;

namespace my2ndWebApi.Controllers
{
    public class ValuesController : ApiController
    {
        // GET api/values
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

        // GET api/values/5
        public string Get(int id)
        {
            return "value";
        }

        // POST api/values
        public void Post([FromBody]string value)
        {
        }

        // PUT api/values/5
        public void Put(int id, [FromBody]string value)
        {
        }

        // DELETE api/values/5
        public void Delete(int id)
        {
        }
    }
}
Nkosi
  • 235,767
  • 35
  • 427
  • 472
MilkBottle
  • 4,242
  • 13
  • 64
  • 146

1 Answers1

1

It depends on the HTTP Verb used when making the request.

A GET request to api/values/5 will match public string Get(int id)

A DELETE request to api/values/5 will match public void Delete(int id).

It is actually indicated in the comments of the sample code provided in the original question.

Reference Routing in ASP.NET Web API

Nkosi
  • 235,767
  • 35
  • 427
  • 472