# IT:AD:Breeze.JS:HowTo:Get the Server Controller ready #
* [[../|(UP)]]
{{indexmenu>.#2|nsort tsort}}
## Process ##
Create a new Controller:
//[BreezeController]
public class MyController : ApiController
{
//Internal db which we do not expose:
private TodoItemContext _dbContext = new TodoItemContext();
public MyController() {}
[HttpGet]
public string Metadata() {
//Expose our dto Context's metadata:
return MyEFContextProvider.Metadata;
}
// ~/api/my/Todos
[HttpGet]
public IQueryable Todos() {
return _dbContext.Set().Select(x => new Todo {Id = x.TodoItemId, Name = x.Title});
}
[HttpPost]
public SaveResult SaveChanges(JObject saveBundle) {
return _contextProvider.SaveChanges(saveBundle);
}
}
Try hitting the `Todos` Action:
http://localhost:56216/api/my/metadata
If you get something akin to the following error:
Multiple actions were found that match the request: Metadata on type Spike.Controllers.MyController Todos on type Spike.Controllers.MyController
then you'll have to add an `{action}` to your routes:
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
You should get something akin to:
{"schema":{"namespace":"Spike","alias":"Self","annotation:UseStrongSpatialTypes":"false","xmlns:annotation":"http://schemas.microsoft.com/ado/2009/02/edm/annotation","xmlns:customannotation":"http://schemas.microsoft.com/ado/2013/11/edm/customannotation","xmlns":"http://schemas.microsoft.com/ado/2009/11/edm","cSpaceOSpaceMapping":"[[\"Spike.Todo\",\"Spike.Messages.Todo\"/]]","entityType":{"name":"Todo","customannotation:ClrType":"Spike.Messages.Todo, Spike, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null","key":{"propertyRef":{"name":"Id"}},"property":[{"name":"Id","type":"Edm.Int32","nullable":"false","annotation:StoreGeneratedPattern":"Identity"},{"name":"Name","type":"Edm.String","maxLength":"128","fixedLength":"false","unicode":"true"}]},"entityContainer":{"name":"DtoDbContext","customannotation:UseClrTypes":"true","entitySet":{"name":"Todoes","entityType":"Self.Todo"}}}}