• 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ę

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
534 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 422 wizyt
0 głosów
1 odpowiedź 436 wizyt
pytanie zadane 26 stycznia 2022 w Java przez T100 Obywatel (1,450 p.)
0 głosów
1 odpowiedź 1,307 wizyt
pytanie zadane 9 kwietnia 2020 w Java przez Pr3sti Nowicjusz (150 p.)

93,191 zapytań

142,206 odpowiedzi

322,040 komentarzy

62,518 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2817p. - dia-Chann
  2. 2769p. - Łukasz Piwowar
  3. 2759p. - Łukasz Eckert
  4. 2738p. - CC PL
  5. 2704p. - Tomasz Bielak
  6. 2678p. - Łukasz Siedlecki
  7. 2666p. - rucin93
  8. 2485p. - Marcin Putra
  9. 2475p. - Adrian Wieprzkowicz
  10. 2426p. - Mikbac
  11. 2418p. - Michal Drewniak
  12. 2239p. - Michał Telesz
  13. 2156p. - Anonim 3619784
  14. 1733p. - rafalszastok
  15. 1650p. - Mariusz Fornal
Szczegóły i pełne wyniki

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...