Preciso implementar o seguinte método WebAPI:
/api/books?author=XXX&title=XXX&isbn=XXX&somethingelse=XXX&date=XXX
Todos os parâmetros da string de consulta podem ser nulos. Ou seja, o chamador pode especificar de 0 a todos os 5 parâmetros.
No MVC4 beta, eu costumava fazer o seguinte:
public class BooksController : ApiController
{
// GET /api/books?author=tolk&title=lord&isbn=91&somethingelse=ABC&date=1970-01-01
public string GetFindBooks(string author, string title, string isbn, string somethingelse, DateTime? date)
{
// ...
}
}
O MVC4 RC não se comporta mais assim. Se eu especificar menos de 5 parâmetros, ele responderá com um 404
ditado:
Nenhuma ação foi encontrada no controlador 'Books' que corresponde à solicitação.
Qual é a assinatura de método correta para se comportar como costumava ser, sem ter que especificar o parâmetro opcional no roteamento de URL?
Get
isso, é automaticamente ligado com o HTTP GET
método ...
string?
não é um tipo válido. Você não pode declarar string
como um tipo anulável, pois é um tipo de referência.