Wep Api HttpResponseMessage – Response Mesaj
Merhabalar , Bu yazımda Web Api mizde yapılan istekler sonucunda başarılı veya başarısız durumlarda response olarak döneceğimiz mesaj için örnek bir kod paylaşacağım .
return olarak HttpResponseMessage olarak return lerimizi sağlayacağız ,
mesajımızın header ına ekleme yapmak için message.Headers.Location = new Uri(Request.RequestUri + “/” + employee.Id); şeklinde kod u kullanabiriz,
Örneğmizde EntityFramework ile yapılan CRUD işlemleri için api methodları düzenlenmiştir.
//
public class EmployeeController : ApiController
{
EmployeeDBEntities db = new EmployeeDBEntities();
public HttpResponseMessage Get(string gender = "all", int? top = 0)
{
IQueryable<Employee> query = db.Employees;
gender = gender.ToLower();
switch (gender)
{
case "all":
break;
case "male":
case "female":
query = query.Where(e => e.Gender.ToLower() == gender);
break;
default:
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, $"{gender} is not a valid gender. Please use all,male or female.");
}
if (top > 0)
{
query = query.Take(top.Value);
}
return Request.CreateResponse(HttpStatusCode.OK, query.ToList());
}
public HttpResponseMessage Get(int id)
{
Employee employee = db.Employees.FirstOrDefault(x => x.Id == id);
if (employee == null)
{
return Request.CreateErrorResponse(HttpStatusCode.NotFound, $"Id'si {id} olan çalışan bulunamadı.");
}
return Request.CreateResponse(HttpStatusCode.OK, employee);
}
public HttpResponseMessage Post(Employee employee)
{
try
{
db.Employees.Add(employee);
if (db.SaveChanges() > 0)
{
HttpResponseMessage message = Request.CreateResponse(HttpStatusCode.Created, employee);
message.Headers.Location = new Uri(Request.RequestUri + "/" + employee.Id);
return message;
}
else
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Veri ekleme işlemi yapılamadı.");
}
}
catch (Exception ex)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex);
}
}
public HttpResponseMessage Put([FromBody]int id, [FromUri]Employee employee)
{
try
{
Employee emp = db.Employees.FirstOrDefault(e => e.Id == id);
if (emp == null)
{
return Request.CreateResponse(HttpStatusCode.NotFound, "Employee Id : " + employee.Id);
}
else
{
emp.Name = employee.Name;
emp.Surname = employee.Surname;
emp.Salary = employee.Salary;
emp.Gender = employee.Gender;
if (db.SaveChanges() > 0)
{
return Request.CreateResponse(HttpStatusCode.OK, employee);
}
else
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Güncelleme yapılamadı.");
}
}
}
catch (Exception ex)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex);
}
}
public HttpResponseMessage Delete(int id)
{
try
{
Employee emp = db.Employees.FirstOrDefault(e => e.Id == id);
if (emp == null)
{
return Request.CreateResponse(HttpStatusCode.NotFound, "Employee Id : " + id);
}
else
{
db.Employees.Remove(emp);
if (db.SaveChanges() > 0)
{
return Request.CreateResponse(HttpStatusCode.OK, "Employee id : " + id);
}
else
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Kayıt Silinemedi. Employee ID : " + id);
}
}
}
catch (Exception ex)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex);
}
}
}
public class MyBodyType
{
public int id { get; set; }
public string second { get; set; }
}
//

