• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

.NET Aplikacje webowe - pytanie o technologię

Object Storage Arubacloud
0 głosów
494 wizyt
pytanie zadane 11 kwietnia 2021 w C# przez tomasz12345 Użytkownik (750 p.)
Witam.. jestem początkującym programistą i szczerze mam wiele być może dziwnych pytań...

natkąłem się na wiele poradników /  kursów apropo pisania aplikacji webowych w ASP.NET. i mam kilka nurtujących pytań... :

 

1. Dlaczego raz używa się adnotacji typu [FromQuerry],[FromBody] przed parametrami metody w kontrolerze ? Widziałem w jednym z poradników, że dana osoba nie używała ich a i tak program wiedział skąd pobierać parametry... Zauważyłem też, że częściej korzysta się z tego kiedy robi się aplikację np. w postamanie, bez widoków HTML...

2. Dlaczego raz się pisze [httpGet] a raz nie?

1 odpowiedź

0 głosów
odpowiedź 11 kwietnia 2021 przez ditrikss Nowicjusz (190 p.)

1. Generalnie parametry można przekazać przez URL lub w Body, ponieważ standard protokołu HTTP przewiduje takie coś jak Body. 

I teraz najważniejsze. Jeśli określić parametr w { }, nie potrzebuje atrybuty FromQuery, ponieważ proces automatycznie go przechwyci

[HttpGet("{id}")] public ActionResult<Pet> GetById(int id)

Jeśli url posiada wartości po znaku zapytania -> ...?ID="123", wtedy musisz użyć FromQuery -> 

[FromQuery] string ID

Co do FromBody mówi procesowi, aby przeszukał Http Body w celu znalezienia obiektu, który nas interesuje. Najczęściej deserializuje się w tym celu obiekt JSON umieszczony w Http Body.

public ActionResult<Pet> Create([FromBody] Pet pet)

public class Pet
{
    public string Name { get; set; }

    public string Breed { get; set; }
}

2. Co do HttpGet, jest to atrybut, który rozpoznaje metodę wejściową do aplikacji zmapowaną z podanym URL, ponieważ ten atrybuty w kontruktorze przyjmuje string jako wartość URL. Jeśli go nie dasz, nie bedziesz mógł zmapować metody z URL aplikacji. 

Oczywiście podany URL w HttpGet jest wartością łączoną, ponieważ URL można jeszcze określić na poziomie kontruktora. Nie będę już tego rozpisywać, ale zachęcam do nauki :D 

komentarz 11 kwietnia 2021 przez tomasz12345 Użytkownik (750 p.)
Dzięki za odpowiedź, wiele cennych informacji, jednak chodzilo mi o to ze widzialem kontrolery np. W MVC ktore mają parametry a nie mają przed sobą czegos w stylu np. [fromBody]... Jak to możliwe? Skad wtedy metoda wie skad pobrać elementy?
komentarz 11 kwietnia 2021 przez ditrikss Nowicjusz (190 p.)
Od ASP.Net core 2.1 jeśli dziedziczysz po ApiController automatycznie używsz FromBody, więc nie musisz go podawać.

Podobne pytania

+2 głosów
0 odpowiedzi 147 wizyt
0 głosów
1 odpowiedź 300 wizyt
pytanie zadane 26 stycznia 2022 w Java przez T100 Obywatel (1,450 p.)
0 głosów
1 odpowiedź 1,206 wizyt
pytanie zadane 9 kwietnia 2020 w Java przez Pr3sti Nowicjusz (150 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...