Twórz interfejsy API RESTful za pomocą Gin Framework

Opublikowany: 2022-09-02

Nie możesz się doczekać stworzenia REST API za pomocą frameworka Gin? Następnie powinieneś dokładnie przeczytać ten blog. W prostych krokach nauczysz się tworzyć podstawowe API, po którym możesz realizować inne złożone projekty. I tak, możesz samodzielnie opracować te rzeczy bez korzystania z usług programistycznych Golang . Ale zanim zaczniemy, zapoznaj się z teoretycznym aspektem frameworka Gin.

  1. Pierwsze zadanie do wykonania
  • Musisz najpierw utworzyć katalog w swoim obszarze roboczym go. Użyjesz wiersza polecenia, jeśli używasz komputera z systemem Windows. Użyj terminala, jeśli używasz systemu macOS lub Linux jako systemu operacyjnego.
  • W tym scenariuszu użyję wiersza polecenia.

cd go-obszar roboczy

praca mkdir

praca na cd

kod .

Gdy wpisujemy code ., widzimy uruchamianie programu VS Code. W twoim przypadku może to być inne IDE lub edytor.

  1. Zacznij korzystać z kodu VS
  • Pierwszą rzeczą, którą zrobimy, jest utworzenie pliku main.go. Następnie musimy pobrać framework gin, aby utworzyć interfejsy API REST.
  • Teraz musimy zbudować plik go.mod. Piszemy:

przejdź mod init golang.com/job

  • Po utworzeniu pliku go.mod wpiszemy:

wejdź na github.com/gin-gonic/gin

Spowoduje to utworzenie pliku go.sum, a także pobranie wszystkich niezbędnych pakietów związanych z frameworkiem gin.

  1. Zacznijmy od prostego API
  • Po prostu zapisujemy kod

pakiet główny

import (

„fmt”

„sieć/http”

„github.com/gin-gonic/gin”

)

funkcja główna()

{s :=gin.Default()

s.GET („”, func (c *gin.Context){

c.String(http.StatusOK, „Jaka jest rola stanowiska?”)

})

s.Run („lokalny host: 8000”)

}

  • Jak widać, zaimportowaliśmy każdy pakiet wymagany przez aplikację. Następnie przechodzimy bezpośrednio do funkcji main. To, co robimy, to budowanie domyślnego modułu oprogramowania pośredniczącego odzyskiwania lub rejestratora dla Gin.
  • Ustawienia domyślne są zawarte w zmiennej „s”. Użyjemy tej zmiennej, aby pomóc w rozwoju GET API. Pierwszym argumentem jaki podałem w tym przykładzie jest adres URL API.
  • Podstawowy adres URL określony przez w.Run („localhost:8000”) będzie używany do hostowania interfejsu API pod adresem localhost:8000. Co więcej, pierwszy argument faktycznie wskazuje względną trasę interfejsu API.
  • Funkcja obsługi func (c *gin.Context) odnosi się do sekwencji funkcji, którą możesz podać.
  • Wskaźnik do zmiennej *gin.Context służy jako argument funkcji. Dlatego „c” w tym przypadku oznacza kontekst.
  • Kontekst musi zwracać wartość c.String lub c.JSON. Tutaj obowiązują dwa kryteria. Stan jest wskazywany przez pierwszy argument, prostą liczbę całkowitą (http.StatusOK). Możemy to wykorzystać, ponieważ zaimportowaliśmy pakiet net/http.
  • Po tym wysyłam tylko przykładowy ciąg. To jest „Jaka jest rola pracy?”
  1. Uruchommy powyższy program

Aby uruchomić program, musimy wpisać go run main.go.

  • Jak widać, istnieje żądanie GET na pustym adresie URL. Jest również wyposażony w funkcję, którą można dostosować. Dodatkowo widoczna jest praca w trybie zwolnienia silnika. Istnieje jeden aktywny punkt końcowy na hoście lokalnym 8000.
  • W przeglądarce internetowej możemy wpisać localhost:8000, aby zobaczyć:
  • W międzyczasie w kodzie VS zobaczysz następującą migawkę

Co to znaczy? Cóż, framework gin odgrywa tutaj ogromną rolę w monitorowaniu czasu odpowiedzi wykonywanego kodu.

  1. Koncentrowanie się na GET API, gdzie przekazywanie parametrów jest obsługiwane przez adres URL

Poniższy kod zakłada, że ​​interfejs API dostarczy wartość, najlepiej ciąg, w odpowiedzi na adres URL.

s.GET("/:get", func (c *gin.Context){

var val = c.Param("getr")

c.JSON(http.StatusOK, gin.H{

„dane odpowiedzi”:val,

})

})

//2 sekcja

  • Możemy podać każdą nazwę zmiennej w żądaniu GET, oddzielając je dwukropkiem. Wszystko, co zostanie wprowadzone po podstawowym adresie URL, zostanie zatem uznane za „pobierz”.
  • Aby określić wartość „get”, musimy zdefiniować kontekst Param i nazwę zmiennej, o której wspomnieliśmy. Val otrzyma „pobranie” od Gina i zostanie poinformowane o wyniku.
  • Następnie widzimy, że przesyłam plik JSON zawierający wartość.

Pracujesz nad czymś złożonym? W takim razie najlepszym pomysłem byłoby skorzystanie z usług programistycznych Golang w przypadku, gdy natkniesz się na problem i nie możesz go naprawić.

  1. Uruchommy powyższy program
  • Ponownie będziemy musieli uruchomić program wpisując go run main.go.

Jeśli zobaczysz komunikat „tcp 127.0.0.1: 8000: bind: Normalnie dozwolone jest tylko jedno użycie każdego adresu gniazda (protokół/adres sieciowy/port).”, musisz wykonać operację w wierszu polecenia.

nestat-ano | znajdźstr :8000

Sprawdź wartość LISTENING (na przykład 7932), następnie musisz wpisać

Zabójstwo / pid 7932 /F

Doprowadzi to do zakończenia procesu pid.

  • W przeglądarce wykonujemy następujące czynności:

Powodem, dla którego musieliśmy wprowadzić ciąg znaków po określeniu localhost:8000, jest to, że API oczekuje ciągu z adresu URL.

  1. Wypróbowanie interfejsu API POST
  • Spróbujemy tutaj połączyć się z POST API. Ponadto mamy świadomość, że dane będą obecne w ciele. Wtedy przyda się struktura.
  • Pamiętasz tę sekcję?

pakiet główny

import (

„fmt”

„sieć/http”

„github.com/gin-gonic/gin”

)

  • Następnie stworzymy strukturę zawierającą dwa pola danych, jak widać:

wpisz Struktura zadania {

Wynagrodzenie int `json:”wynagrodzenie” powiązanie: „wymagane”`

Ciąg nazwy `json:”name” Powiązanie: „wymagane”`

}

  • Json:”salary” i json:”name” reprezentują różne klucze. Możesz również zobaczyć, że wiązanie zostało określone jako „wymagane”.
  • Po //2 sekcji wpiszemy:

s.POST("/podświetl", func (c *gin.Context){

var dane zadanie

if err := c.ShouldBind(&data); błąd != zero{

fmt.Println (błąd)

c.JSON(http.StatusBadRequest, gin.H{

„błąd”: fmt.Sprintf(„%v”, błąd),

})

} w przeciwnym razie{

c.JSON(http.StatusOK, gin.H{

„dane” : dane,

})

}

})

  • Spójrzmy na ten blok kodu. W s.POST zbudujemy obiekt dla Joba. Kontekst „c” powinien następnie zostać dołączony do modelu danych. Jeśli c.ShouldBind(&data) zgłosi błąd, powiadomi API o problemie.
  • Złożyłem złe żądanie, które demonstruje błąd zaobserwowany w „error”: fmt.Sprintf(„%v”, err) w c.JSON(http.StatusBadRequest).
  • Jeśli nie ma problemów, klucz „data” zostanie użyty do przesłania danych z powrotem do odpowiedzi API.
  1. Uruchommy ostatni blok kodu
  • Przyjrzyjmy się teraz końcowemu etapowi programu. Aby to zrobić, musimy wpisać go run main.go. Dodatkowo użyję Postmana, aby pokazać, jak działa API i jak działa kod. Wystarczy zainstalować wersję na komputer.
  • Możesz zobaczyć, że mam dwa pola danych w ciele, jeśli spojrzysz na zrzut ekranu poniżej. Raw i JSON powinny być wyborem dla Body.
  • Gdy klikniemy „Wyślij”, zobaczymy następujący wynik:

{

"dane": {

„wynagrodzenie”: 23000,

„nazwa”: „Robert Hall”

}

}

Czy byłeś w stanie zrozumieć program? TAk? Wtedy świetnie. W ostatnim przypadku widzimy trzy działające interfejsy API, ten, w którym nic nie wspomniano w adresie URL, ten, który oczekuje ciągu, a następnie ostatni, który oczekuje wartości w treści. Mamy nadzieję, że już teraz poradzisz sobie z niektórymi trudnymi zadaniami REST API.