I have 3 entities. entity sensor, entity tanaman, and entity tanamanhassensor. i want make graph from api tanamanhassensor use json jquery. How to display the graph? if i use my json, the api http://xxxxx/api/tanaman_has_sensor is not found
My entities like this :
public partial class Tanaman_has_Sensor
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Tanaman_has_Sensor()
{
this.Tanaman_has_Sensor_has_Jadwal = new HashSet<Tanaman_has_Sensor_has_Jadwal>();
}
public int Tanaman_IdTanaman { get; set; }
public int Sensor_IdSensor { get; set; }
public double NilaiSensor { get; set; }
public System.DateTime WaktuSensor { get; set; }
public string Lokasi { get; set; }
public virtual Sensor Sensor { get; set; }
public virtual Tanaman Tanaman { get; set; }
public virtual ICollection<Tanaman_has_Sensor_has_Jadwal> Tanaman_has_Sensor_has_Jadwal { get; set; }
}
This is my controller
public class TanamanhasSensorController : ApiController
{
private SmartGreenHouseEntities db = new SmartGreenHouseEntities();
// GET: api/TanamanhasSensor
public IQueryable<Tanaman_has_Sensor> GetTanaman_has_Sensor()
{
return db.Tanaman_has_Sensor;
}
// GET: api/TanamanhasSensor/5
[ResponseType(typeof(Tanaman_has_Sensor))]
public async Task<IHttpActionResult> GetTanaman_has_Sensor(int id)
{
Tanaman_has_Sensor tanaman_has_Sensor = await db.Tanaman_has_Sensor.FindAsync(id);
if (tanaman_has_Sensor == null)
{
return NotFound();
}
return Ok(tanaman_has_Sensor);
}
}
Application json
[{
"Tanaman_IdTanaman": 1,
"Sensor_IdSensor": 2,
"NilaiSensor": 3.1,
"WaktuSensor": "2016-11-19T07:38:42.519263+07:00",
"Lokasi": "sample string 5",
"Sensor": {
"$id": "1",
"IDSensor": 1,
"NamaSensor": "sample string 2",
"Tanaman_has_Sensor": [
{
"Tanaman_IdTanaman": 1,
"Sensor_IdSensor": 2,
"NilaiSensor": 3.1,
"WaktuSensor": "2016-11-19T07:38:42.519263+07:00",
"Lokasi": "sample string 5",
"Sensor": {
"$ref": "1"
}]
My json
$.ajax({
type: 'GET',
url: "http://xxxxx/api/tanaman_has_sensor",
dataType: 'json',
async: false,
contentType: "application/json; charset=utf-8",
data: dd,
Assuming default convention-based routing for Web API 2
// Convention-based routing.
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
you should be calling
url: "http://xxxxx/api/TanamanhasSensor
by convention the route table matches controller name minus Convention
thus TanamanhasSensorController
will map to TanamanhasSensor
Even your controller demonstrates this in the comments
public class TanamanhasSensorController : ApiController {
private SmartGreenHouseEntities db = new SmartGreenHouseEntities();
// GET: api/TanamanhasSensor
[HttpGet]
public IQueryable<Tanaman_has_Sensor> GetTanaman_has_Sensor() {
return db.Tanaman_has_Sensor;
}
// GET: api/TanamanhasSensor/5
[HttpGet]
[ResponseType(typeof(Tanaman_has_Sensor))]
public async Task<IHttpActionResult> GetTanaman_has_Sensor(int id) {
Tanaman_has_Sensor tanaman_has_Sensor = await db.Tanaman_has_Sensor.FindAsync(id);
if (tanaman_has_Sensor == null) {
return NotFound();
}
return Ok(tanaman_has_Sensor);
}
}