Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "encoding/json"
- "github.com/gorilla/mux"
- "log"
- "net/http"
- "strconv"
- )
- type Book struct { // struktura książki
- ID int `json:"id""`
- Title string `json:"title""`
- Author string `json:"author""`
- Year string `json:"year""`
- }
- var books []Book
- func main() {
- r := mux.NewRouter() // tworzenie host'a
- books = append(books, Book{ID: 1, Title: "Why I love GoLang", Author: "Mr. Norbert", Year: "2015"},
- Book{ID: 2, Title: "Why I love GoLang 2", Author: "Mr. Norbert", Year: "2016"},
- Book{ID: 3, Title: "Why I love GoLang 3", Author: "Mr. Norbert", Year: "2017"},
- Book{ID: 4, Title: "Why I love GoLang 4", Author: "Mr. Norbert", Year: "2018"},
- Book{ID: 5, Title: "Why I love GoLang 5", Author: "Mr. Norbert", Year: "2019"})
- r.HandleFunc("/books", getBooks).Methods("GET") // wypisywanie danych za pomocą funkcji getBooks (GET)
- r.HandleFunc("/books/{id}", getBook).Methods("GET") // wypisywanie książki z wybranym id za pomocą funkcji getBook (GET)
- r.HandleFunc("/books", addBook).Methods("POST") // dodawanie książki za pomocą funkcji addBook (POST)
- r.HandleFunc("/books", updateBook).Methods("PUT") // updating książki za pomocą funkcji updateBook (PUT)
- r.HandleFunc("/books/{id}", removeBook).Methods("DELETE") // usuwanie książki za pomocą funckji removeBook (DELETE)
- log.Fatal(http.ListenAndServe(":8000", r)) // włączanie serwera na porcie :8000
- }
- func getBooks(w http.ResponseWriter, r *http.Request) {
- _ = json.NewEncoder(w).Encode(books) // serwer tworzy plik json w którym zakodowuje strukturę book
- }
- func getBook(w http.ResponseWriter, r *http.Request) {
- params := mux.Vars(r) // tworzenie mapy tablicy books
- i, _ := strconv.Atoi(params["id"])
- for _, book := range books {
- if book.ID == i { // sprawdzanie czy ID jest równe ID2
- _ = json.NewEncoder(w).Encode(&book) // zwracania pliku json
- }
- }
- }
- // RESZTA NIE POTRZEBNA
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement