Twórz interfejsy API RESTful za pomocą Gin Framework
Opublikowany: 2022-09-02Nie 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.
- 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.
- 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.
- 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?”
- 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.
- 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ć.
- 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.
- 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.
- 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.