• 1397/09/18

متد CreatedAtRoute چیست و چه زمانی استفاده میشود؟ :

سلام

ببخشید من این متد رو درک نمیکنم میشه کامل توضیح بدید ممنون میشم. من توی این کد دلیل نام گذاری 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);
        }

 

  • 1397/09/18
  • ساعت 11:42

سلام 

متک اکشن را تغییر داده و در آدرس بار با این نام در دسترس خواهد بود 


logo-samandehi