API do największego zbioru otwartych danych w Polsce

Jesteście zainteresowani dostępem do największego zbioru otwartych danych w Polsce? Jestem odpowiedzialny w Fundacji za dowiezienie porządnego API do naszego serwisu http://mojepanstwo.pl.

Będziemy wypuszczać API do konkretnych “aplikacji” serwisu, grupując dane tematycznie i dostarczając dodatkowych funkcji. Wstępna wersja leży na http://mojepanstwo.pl/api/.

Opis wykorzystania na http://http://mojepanstwo.pl/api/technical_info

Będę wdzięczny za wszelkie komentarze na temat sposobów jego funkcjonowania i dziur w dokumentacji. Na razie API jest otwarte, w najbliższej przyszłości planujemy dostęp przez HTTPS + API key i rejestrację, żeby móc tym lepiej zarządzać.

Świadom jest następujących błędów:

  1. Nieostylowana strona
  2. Źle działający plugin SwaggerUI prezentujący funkcje konkretnego API (generuje złe ściezki w adresie przeglądarki)

@maciej, mówiłeś, że mógłbyś spojrzeć :slight_smile:

@krzysiekmad jasne. Ostatnio mam bardzo napięty kalendarz. Wpisuję rzucić na to okiem na piątek. Jeżeli mi się uda wtedy – to wpiszę komentarze. Jak nie – nie da się w ogóle w najbliższym czasie.

Dobrze mi się wydaje, że do BDL dalej niema API?

Pozdrawiam,
Pawel

Zmieniłem zdanie, jednak ten BDL dobrze nie działa jeszcze, albo jakaś warstwa jest ukryta.

Zapomniałem o tej dyskusji: Bank Danych Lokalnych - API lub dane

Cześć,

Czy jesteś zainteresowany (kontrolowanymi i uzgodnionymi wcześniej) pentestami?

M.

Review notes:

  • http://api.mojepanstwo.pl/%api_slug%_v%duza_wersja$/ – zwykle konwencją jest zapis /%version%/%endpoint%, albo /v%wersja%/%endpoint%. Bardzo rzadko spotykane jest, by wersja była po nazwie endpointu
  • złą praktyką jest zmienianie interfejsu endpointu http://api.mojepanstwo.pl/%api_slug%/ efektywnie tak będzie działać. Udostępnianie endpointów, w których wersja API nie jest jawna może prowadzić do błędów po stronie aplikacji klienckich, szczególnie tych rzadziej aktualizowanych.
  • dlaczego wybraliście akurat swaggera do dokumentacji? Co przemawiało za zastosowaniem go, a nie http://apigee.com/ albo RAML?
  • brakuje informacji o rate limitingu requestów. Czy macie taki?

@krzysiekmad hej, swoją drogą mam pytanie do obecnego API.

Mam następującą stronę: http://mojepanstwo.pl/dane/bdl_wskazniki/695, której odpowiada taki dokument JSONowy: http://mojepanstwo.pl/dane/bdl_wskazniki/695.json

Jak z tego dokumentu zbudować zapytanie o wartości wskaźników http://mojepanstwo.pl/dane/bdl_wskazniki/chart_data_for_dimmensions.json?dims=13264,13265? Jest ono wysyłane przy otworzeniu strony w przeglądarce i na jego podstawie budowane są wykresy.

Ha, No to czekam na BDLa.

Przy okazji: czy poza API wystawicie też całe bazy danych (jak np Wikipedia). Większe analizy znacznie lepiej robi si e na dumpie bazy.

Pozdrawiam,
Paweł

@maciej, @Pawel_Kolodziej dzięki za komentarze.

Będziemy wystawiać. Priorytetem jest API, ale może warto będzie równolegle to robić. Dzięki za przypomnienie.

Dyskusja odnośnie BDL jest tu: Bank Danych Lokalnych - API lub dane

W skrócie: nie ma oczywistego powiązania. Siadam do tego w tym tygodniu i będę normował te zapytania.

Zastanawiam się w tym kontekście jak udostępniać tego typu ciągi czasowe. Chyba dość pożądaną opcją byłaby możliwość zwrócenia konkretnego okresu. Co myślicie?

Zgadza się. Ale w naszym wypadku będzie bardzo dużo aplikacji, każde będzie miało osobne API. Chcemy mieć możliwość podbijania wersji każdego API niezależnie od innych. Dlatego logiczne wydaje mi się ułożenie tego w tej kolejności.

Zgadzam się. Dlatego istnieje do tego disclaimer:

Deweloper dokonuje wyboru… Ale po przemyśleniu rezygnuję z tego. Bo to koniec końców propagowanie złych praktyk.

Bo:

  • dynamicznie się rozwija
  • bo ma generowanie stub aplikacje klienckich
  • ma interaktywny interfejs (RAML ma console, ale już zapytań nie można wysyłać)
  • i wiele innych tooli i integracji
  • prosta reprezentacja (blueprint odrzuciłem)

Prawda jest taka, że wszystkie te projekty się dość dynamicznie rozwijają i ciężko teraz ocenić kto będzie diamentem (zwycięzcą). Większość naszych prac i tak jest na backendzie, więc zmiana Swaggera na RAML to nie powinien być problem.

ApiGee pierwszy raz widzę i na pierwszy rzut oka nie wygląda zbyt open. Wszystkie blogposty na jakie trafiłem roztrząsały Blueprint vs Swagger vs RAML.

Korzystałem z:

Nie mamy, ale będzie. Roadmap jest tu powiązany z autoryzacją i wygląda +/- następująco:

  1. Odpalić API na https
  2. Wprowadzić obowiązkowe api tokeny
  3. Dodać na razie dość luźny rate-limiting

Poszła wiadomość na priv!

I jeszcze rozmyślając o API do BDLa dochodzę do wniosku że to chyba niema sensu. Lepiej zrobić dump bazy zamiast API.

API ma sens dla danych często aktualizowanych lub tam gdzie zazwyczaj będziemy chcieli pobrać tylko bardzo mały fragment danych.

W BDLu dane są raczej statyczne (aktualizowane raz na rok jak mniemam) a żeby ich rozsądnie użyć trzeba pobrać znaczną ich część.

Tak myślę. Ale może macie jakieś przemyślane use-casy dla API do BDLa?

Mamy kilka.

Właśnie z BDL fajnie móc pobrać fragment, bo całość jest dość duża.

Udostępniłem właśnie API do BDL. Więcej na Bank Danych Lokalnych - API lub dane