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; }
    }

//

 

Print Friendly, PDF & Email

You may also like...

Bir cevap yazın