HTTP methods z Go i MongoDB – część 3 – PUT i DELETE

W poprzednich dwóch częściach cyklu nauczyliśmy się tworzyć produkty, pobierać listę produktów oraz pojedynczy produkt za pomocą ID. Poniższy wpis zademonstruje, w jaki sposób możemy zaaktualizować produkt oraz jak go usunąć, czyli poznamy metody PUT i DELETE.

HTTP methods – PUT

Aktualizacja produktu

Do aktualizacji produktu wykorzystamy wiedzę, którą zdobyliśmy do tej pory – czyli pobieranie produktu po ID.

Na początek wykorzystamy pakiet gorilla/mux, aby dostać się parametrów zapytania. Następnie sprawdzamy czy wsród parametrów znajduje się ID. Jeżeli wszystko przebiegło poprawnie, to konwertujemy ID na ObjectIdHex.

W kolejnym kroku, podobnie jak przy metodzie POST, tworzymy nasz lokalny produkt, parsujemy i dekodujemy. Otwieramy połączenie z bazą danych i dzięki metodzie UpdateId, aktualizujemy nasz produkt przesyłając kolejno oid i product.

Na koniec standardowe ustawienie nagłówków: "Content-Type", "application/json", odpowiedź 200 - OK. Zamykamy sesję i zwracamy nasz zmodyfikowany produkt w formacie JSON.

Efekt pracy w POSTMANie:

Postman - PUT method- HTTP

HTTP methods – DELETE

Usuwanie produktu

Usuwanie produktów, na podstawie naszych doświadczeń, wydaje się teraz dziecinnie proste.

Metoda remove(), nie różni się niczym znaczącym od wcześniej wspomnianych metod. Całą magię wykonuje RemoveId(), gdzie jako parametr przekazujemy ObjectIdHex. Efekt naszej pracy na screenie poniżej:

Postman - DELETE method- HTTP

Podsumowanie

Powyższy wpis, to trzecia i ostatnia część cyklu HTTP methods. Praca nad tymi kilkoma endpointami dała mi wiele satysfakcji. Zdaję sobie sprawę z tego, że wymagają one poprawy. Poszedłem na duże uproszczenia, ale ucząc się języka Go oraz MongoDB, postawiłem sobie na razie za cel: minimalną, działającą funkcjonalność. To będzie dobry wstęp do czegoś większego.

 

Dawid Ryłko

Lubię dobre filmy, gry oraz kawę. W pracy front-end, po godzinach wszystko inne.

 
  • Dobry kontent, keep it comin’ :). Przeczytałem wszystkie posty, ale zostawię komentarz tylko tutaj aby zminimalizować hałas. Dobry flow, dobre tempo (z Hello world bezpośrednio do serwera HTTP? why not! W Go to ma sens). Podobają mi się Twoje cele, masz jasno określone, że podstawa to nauka, a kod to sprawa drugorzędna. Coś, czego zabrakło mi w zeszłym roku. Ale biorąc pod uwagę tempo prac, to chyba z kodem też nie będzie problemu 🙂 Pozdro!

  • Dzięki wielkie za feedback. Motywuje to do dalszej pracy.

Współpraca:
Polski Front-End