Advertisement
Guest User

Untitled

a guest
Nov 12th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 1.96 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "encoding/json"
  5.     "github.com/gorilla/mux"
  6.     "log"
  7.     "net/http"
  8.     "strconv"
  9. )
  10.  
  11. type Book struct { // struktura książki
  12.     ID     int    `json:"id""`
  13.     Title  string `json:"title""`
  14.     Author string `json:"author""`
  15.     Year   string `json:"year""`
  16. }
  17.  
  18. var books []Book
  19.  
  20. func main() {
  21.     r := mux.NewRouter() // tworzenie host'a
  22.  
  23.     books = append(books, Book{ID: 1, Title: "Why I love GoLang", Author: "Mr. Norbert", Year: "2015"},
  24.         Book{ID: 2, Title: "Why I love GoLang 2", Author: "Mr. Norbert", Year: "2016"},
  25.         Book{ID: 3, Title: "Why I love GoLang 3", Author: "Mr. Norbert", Year: "2017"},
  26.         Book{ID: 4, Title: "Why I love GoLang 4", Author: "Mr. Norbert", Year: "2018"},
  27.         Book{ID: 5, Title: "Why I love GoLang 5", Author: "Mr. Norbert", Year: "2019"})
  28.  
  29.     r.HandleFunc("/books", getBooks).Methods("GET")           // wypisywanie danych za pomocą funkcji getBooks (GET)
  30.     r.HandleFunc("/books/{id}", getBook).Methods("GET")       // wypisywanie książki z wybranym id za pomocą funkcji getBook (GET)
  31.     r.HandleFunc("/books", addBook).Methods("POST")           // dodawanie książki za pomocą funkcji addBook (POST)
  32.     r.HandleFunc("/books", updateBook).Methods("PUT")         // updating książki za pomocą funkcji updateBook (PUT)
  33.     r.HandleFunc("/books/{id}", removeBook).Methods("DELETE") // usuwanie książki za pomocą funckji removeBook (DELETE)
  34.  
  35.     log.Fatal(http.ListenAndServe(":8000", r)) // włączanie serwera na porcie :8000
  36. }
  37.  
  38. func getBooks(w http.ResponseWriter, r *http.Request) {
  39.     _ = json.NewEncoder(w).Encode(books) // serwer tworzy plik json w którym zakodowuje strukturę book
  40. }
  41.  
  42. func getBook(w http.ResponseWriter, r *http.Request) {
  43.     params := mux.Vars(r) // tworzenie mapy tablicy books
  44.  
  45.     i, _ := strconv.Atoi(params["id"])
  46.  
  47.     for _, book := range books {
  48.         if book.ID == i { // sprawdzanie czy ID jest równe ID2
  49.             _ = json.NewEncoder(w).Encode(&book) // zwracania pliku json
  50.         }
  51.     }
  52. }
  53.  
  54. // RESZTA NIE POTRZEBNA
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement