/ / Najlepsza praktyka korzystania z kilku interfejsów API lub źródeł danych dla jednej aplikacji - json, xml, baza danych, schemat, źródło danych

Najlepsza praktyka korzystania z kilku interfejsów API lub źródeł danych dla jednej aplikacji - json, xml, bazy danych, schematu, źródła danych

Chcę zbudować aplikację, która korzysta z danych z kilku punktów końcowych.

Powiedzmy, że mam:

  • JSON API do pobierania danych kinowych
  • Eksport XML do pobierania danych o ???
  • Kolejny JSON API do czegoś innego
  • Plik CSV dla więcej gówna ...

W mojej aplikacji chcę zebrać wszystkie te dane i zbudować dla nich widoki i tak dalej ...

MÓJ pomysł polegał na stworzeniu bazy danych poprzez stworzenie schematów dla wszystkich tych źródeł danych, abym mógł zrobić coś w rodzaju „skryptów importu”, które mogę wywołać, kiedy chcę uzyskać najnowsze dane.

Pomyślałem o schematach, ponieważ chcę mieć możliwość łatwego dostosowania nowego interfejsu API do dowolnego schematu.

Proszę, wyjaśnij mi możliwości i najlepsze praktyki (teoria i praktyka, jeśli to możliwe: P)

Odpowiedzi:

0 dla odpowiedzi № 1

Masz całkowitą rację co do tworzenia bazy danych. Ale prawdziwym problemem prawdopodobnie nie będzie sposób przechowywania danych. To będzie jak to dopasować logicznie i semantycznie.

Proponuję, abyś najpierw dobrze się przyjrzał, jaki jest twójenpoints może zapewnić. Pobierz kilka próbek z każdego źródła i przeanalizuj je, jeśli możesz. Skąd będziesz wiedzieć, które dane są nowe? Jak możesz porównać to z istniejącymi danymi i danymi z innych źródeł? Jeśli istniejące dane zmienią się lub zostaną usunięte, jak to wykryjesz i sobie z tym poradzisz? A jeśli źródła się na coś nie zgadzają? Jak i kiedy należy przeprowadzić synchronizację? Co zrobisz, jeśli jedno z Twoich źródeł ulegnie awarii? Itp.

Ujednolicenie danych jest niezwykle trudnejeśli Twoje źródła danych nie są. Z reguły jeśli źródła są różne, nie są one spójne. Stąd przysłowie „śmieci na wejściu, śmieci na zewnątrz”. My, ludzie, nie mamy problemu z drobnymi niespójnościami, ale algorytmy nie mogą działać poprawnie, jeśli występują rozbieżności. Nawet jeśli wszystko pasuje do siebie na papierze, zwykle zapomina się, że dane mogą się zmieniać w czasie ...

Przynajmniej takie jest moje doświadczenie w takich przypadkach.


0 dla odpowiedzi nr 2

Nie jestem pewien, czy w aplikacji chceszwyświetl wszystkie dane w tym samym widoku lub jeśli zamierzasz tworzyć różne widoki dla każdego źródła. Jeśli chcesz wyświetlić dane w tym samym widoku, np. Siatce, polecam użycie dziedziczenia lub interfejsu w zależności od danych i potrzeb. Poleciłbym również ustawienie tej struktury w bazie danych przy użyciu różnych tabel dla różnych źródeł i powiązanej z nimi tabeli nadrzędnej, z którą jest powiązany typ.

Oto dobry wątek z dyskusją na temat wyboru interfejsu lub dziedziczenia. Dziedziczenie a interfejs w C #

A oto kilka przykładów reprezentacji dziedziczenia w bazie danych. Jak możesz przedstawić dziedziczenie w bazie danych?