Cześć wszystkim, mam takiego oto endpointa, jest to bardzo prosta sprawa. Nie do końca jednak rozumiem po co mappuje Automapperem drugi raz i wkładam zmienną mappedRoom do metody CreatedAtAction skoro mogę tam włożyć równie dobrze zmienną room i program też będzie działać, bo już to sprawdziłem.
Ogólnie jest to kod z kursu nt. web api. Ktoś wie czemu i czy powinno się mappować drugi raz przed włożeniem do tej metody obiektu?
[HttpPost] [Route("{hotelId}/rooms")] public async Task<IActionResult> AddRoom(int hotelId, [FromBody] RoomPostDTO newRoom) { var room = _mapper.Map<Room>(newRoom); room.HotelId = hotelId;
@ProbablyHappy: Bo obiekt domenowy room nie powinien być udostępniany publicznie jako on sam w sobie tylko w formie dto czy tam innej klasy gdzie np ukrywane są jakieś pola przykład jeśli zwracał byś usera to bez hasła itp
Ogólnie jest to kod z kursu nt. web api. Ktoś wie czemu i czy powinno się mappować drugi raz przed włożeniem do tej metody obiektu?
[HttpPost]
[Route("{hotelId}/rooms")]
public async Task<IActionResult> AddRoom(int hotelId, [FromBody] RoomPostDTO newRoom)
{
var room = _mapper.Map<Room>(newRoom);
room.HotelId = hotelId;
_dbContext.Rooms.Add(room);
await _dbContext.SaveChangesAsync();
var mappedRoom = _mapper.Map<RoomGetDTO>(room);
return CreatedAtAction(nameof(GetRoom),
new { hotelId = hotelId, roomId = mappedRoom.Id }, mappedRoom);
}
#naukaprogramowania #aspnetcore #csharp #pytanie
Akurat kurs był darmowy :)
@Dick_Mahoney:
Dzięki, już rozumiem.