سلام
ببخشید من این متد رو درک نمیکنم میشه کامل توضیح بدید ممنون میشم. من توی این کد دلیل نام گذاری Name = "GetPointOfInterest"
بر روی اکشن GetPointOfInterest رو درک نمیکنم . نکته بعدی چرا CreatedAtRoute به این صورت نوشته شده یعنی در واقع داره اشاره میکنه به نام GetPointOfInterest دلیلش چیه ؟
با تشکر
return CreatedAtRoute("GetPointOfInterest",
new { cityId = cityId, id = finalPointOfInterest } , finalPointOfInterest);
[HttpGet("{cityId}/pointsofinterest/{id}" , Name = "GetPointOfInterest")]
public IActionResult GetPointOfInterest(int cityId, int id)
{
var city = CitiesDataStore.Current.Cities.FirstOrDefault(c => c.Id == cityId);
if (city == null)
{
return NotFound();
}
var pointOfInterest = city.PintsOfInterest.FirstOrDefault(p => p.Id == id);
if (pointOfInterest == null)
{
return NotFound();
}
return Ok(pointOfInterest);
}
[HttpPost("{cityId}/pointsofinterest")]
public IActionResult CreatePointOfInterest(int cityId,
[FromBody] PointOfInterestForCreationDto pointOfInterest)
{
if(pointOfInterest == null)
{
return BadRequest();
}
var city = CitiesDataStore.Current.Cities.FirstOrDefault(c => c.Id == cityId);
if(city == null)
{
return NotFound();
}
var maxPId = CitiesDataStore.Current.Cities.SelectMany(
c => c.PintsOfInterest).Max(p => p.Id);
var finalPointOfInterest = new PointOfInterestDto()
{
Id = ++maxPId,
Name = pointOfInterest.Name,
Description = pointOfInterest.Description
};
city.PintsOfInterest.Add(finalPointOfInterest);
return CreatedAtRoute("GetPointOfInterest",
new { cityId = cityId, id = finalPointOfInterest } , finalPointOfInterest);
}
سلام
متک اکشن را تغییر داده و در آدرس بار با این نام در دسترس خواهد بود