12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- package sdApi11
- import (
- "bytes"
- "encoding/json"
- "fmt"
- "net/http"
- models "devel.mephi.ru/dyokunev/go-sd-models/api11"
- )
- var (
- apiKey string
- )
- func SetApiKey(newApiKey string) {
- apiKey = newApiKey
- }
- func GetPeople() (people models.People, err error) {
- err = getItems(&people, "https://sd.mephi.ru/api/11/get_people.json")
- return
- }
- func getItems(items interface{}, url string) error {
- client := &http.Client{}
- req, _ := http.NewRequest("GET", url, nil)
- q := req.URL.Query()
- q.Add("api_key", apiKey)
- req.URL.RawQuery = q.Encode()
- response, err := client.Do(req)
- if err != nil {
- return err
- }
- defer response.Body.Close()
- var bytesArray []byte
- buf := bytes.NewBuffer(bytesArray)
- _, err = buf.ReadFrom(response.Body)
- if err != nil {
- return err
- }
- if err := json.Unmarshal(buf.Bytes(), &items); err != nil {
- return fmt.Errorf("Cannot parse: %v: \"%v\"", string(buf.Bytes()), err.Error())
- }
- return nil
- }
|