Pytania otagowane jako api-design

Interfejs programowania aplikacji (API) omawia najlepsze praktyki tworzenia bibliotek przeznaczonych do ogólnego użytku lub użytku publicznego.

6
Co mają ze sobą wspólnego świetne interfejsy API? [Zamknięte]
Zamknięte . To pytanie musi być bardziej skoncentrowane . Obecnie nie przyjmuje odpowiedzi. Zamknięte 6 lat temu . Zablokowana . To pytanie i odpowiedzi są zablokowane, ponieważ pytanie jest nie na temat, ale ma znaczenie historyczne. Obecnie nie akceptuje nowych odpowiedzi ani interakcji. Co sprawia, że ​​świetne interfejsy API sprawiają, …
15 api-design 

7
Jak zaprojektować uwierzytelnianie użytkownika z aplikacji klienckich?
Tworzę aplikację, która będzie obsługiwać wielu użytkowników. Chodzi o to, że nie jestem w stanie dowiedzieć się, jak uwierzytelnić klienta / użytkownika. Tworzę aplikację, taką jak http://quickblox.com/, w której podam poświadczenia moim użytkownikom, którzy wykorzystają je do zbudowania aplikacji N , w których nie mogą podać swojej nazwy użytkownika i …

1
Jaki jest właściwy sposób zagnieżdżania zasobów w modelu REST?
Projektuję interfejs API usługi REST i utknąłem na właściwej drodze do zagnieżdżania zasobów. Zasoby: partnerzy, bilety, ustawienia Połączenia między zasobami: partner ma wiele biletów, partner ma ustawione ustawienia, Logika biznesowa: możesz wymienić wszystkich partnerów jako anonimowych użytkowników, możesz dodać nowy bilet do określonego partnera jako użytkownik anonimowy, tylko partner może …
14 api  rest  api-design 

5
Kiedy w projektowaniu API należy stosować / unikać polimorfizmu ad hoc?
Sue jest projektowanie biblioteki JavaScript, Magician.js. Jego zawleczka jest funkcją, która wyciąga Rabbitz przekazanego argumentu. Wie, że jego użytkownicy mogą chcieć wyciągnąć królika z String, a Number, a Functionmoże nawet a HTMLElement. Mając to na uwadze, mogłaby zaprojektować swój interfejs API w następujący sposób: Surowy interfejs Magician.pullRabbitOutOfString = function(str) //... …

3
Czy identyfikatory zaplecza powinny być publiczne, czy nie w interfejsie API REST?
Na podstawie tego, co mówi ten facet: http://toddfredrich.com/ids-in-rest-api.html Załóżmy, że ma rację, używając identyfikatora UUID do identyfikacji zasobów interfejsu API. Potem napotykam kłopoty, próbując to zaimplementować w następujący sposób: class FooEntity { final String id = null; //auto-generated by my backend (mongodb), not shared final UUID uid = UUID.randomUUID(); //the …

4
Użyj kompozycji i dziedziczenia dla DTO
Mamy interfejs API sieci Web ASP.NET, który zapewnia interfejs API REST dla naszej aplikacji jednostronicowej. Używamy DTO / POCO do przesyłania danych przez ten interfejs API. Problem polega na tym, że z czasem te DTO stają się coraz większe, więc teraz chcemy zmienić DTO. Szukam „najlepszych praktyk”, jak zaprojektować DTO: …
13 rest  api-design  web-api  dto  poco 

1
Kiedy powinienem używać AtomPub?
Prowadzę badania nad projektowaniem usług internetowych RESTful i doszedłem do tego, co uważam za kluczowy punkt decyzji, więc pomyślałem, że zaoferuję to społeczności, aby uzyskać porady. Zgodnie z zasadami architektury RESTful chcę zaprezentować wykrywalny interfejs API, dlatego będę wspierał różne czasowniki HTTP tak dokładnie, jak to możliwe. Moja trudność wiąże …

8
Czy interfejs ujawniający funkcje asynchroniczne jest nieszczelną abstrakcją?
Czytam książkę Zasady, praktyki i wzorce wstrzykiwania zależności i czytam o koncepcji nieszczelnej abstrakcji, która jest dobrze opisana w książce. Obecnie refaktoryzuję bazę kodu C # przy użyciu wstrzykiwania zależności, aby zamiast blokowania były używane wywołania asynchroniczne. W tym celu rozważam interfejsy, które reprezentują abstrakcje w mojej bazie kodu i …

3
Płaski czy zagnieżdżony JSON dla danych hierarchicznych?
Zmieniałem już ~ 5 razy. Ten punkt końcowy REST /api/tags/będzie do użytku wewnętrznego (bez klientów innych firm), jestem jedynym, który z nim pracuje. Decyduję między tymi dwoma reprezentacjami: Mieszkanie { "types":[ { "id":1, "text":"Utility" }, { "id":7, "text":"Lease Terms" }, ], "tags":[ { "id":8, "text":"Water", "type":1 }, { "id":9, "text":"Electricity", …
12 rest  api-design  json 

2
Czy powinienem zezwolić na nieznane parametry?
Projektuję interfejs API RESTful i napotkałem problem z tytułem, dla zachowania przejrzystości: Czy powinienem szybko zawieść, jeśli klient wyśle ​​nierozpoznany parametr? Na przykład, http://example.com/api/foo?bar=true&paula=bean Powyżej barjest poprawnym parametrem, ale paulanie jest określony przez API. Czy powinienem Ostrzeż klienta o błędzie Szybko zawieść Zignoruj ​​to Jeśli ostrzeżę klienta, mogę wydać ostrzeżenie …
12 rest  api-design 

1
Zachowaj API zamiast używania idiomów w porcie
Pracuję na porcie od Pythona do Rusta i natrafiłem na kod, który nie może być wyrażony w Rust tak naturalnie, jak w Pythonie. Jednym z takich przypadków jest użycie parametrów domyślnych: class Foo: def __init__(self, a="Hello"): self._a = a W Rust możesz to zaimplementować za pomocą konstruktora: struct FooBuilder { …

2
Implementowanie wzorca poleceń w interfejsie API RESTful
Jestem w trakcie projektowania interfejsu API HTTP, mam nadzieję, że uczynię go możliwie jak najbardziej REST. Istnieje kilka działań, których funkcjonalność rozciąga się na kilka zasobów i czasem trzeba je cofnąć. Pomyślałem sobie, że to brzmi jak wzorzec poleceń, ale jak mogę zamodelować go w zasób? Przedstawię nowy zasób o …

2
Projektowanie interfejsu API biblioteki C ++
Szukam dobrego zasobu do nauki o dobrym projektowaniu API dla bibliotek C ++, przeglądaniu współdzielonych obiektów / bibliotek dll itp. Istnieje wiele zasobów na temat pisania fajnych API, ładnych klas, szablonów itp. Na poziomie źródła, ale prawie nic o łączenie rzeczy we wspólnych bibliotekach i plikach wykonywalnych. Książki takie jak …

2
Jak zaprojektować punkty końcowe interfejsu API do publikowania obiektu potomnego i uzyskiwania wszystkich dzieci wszystkich rodziców?
Na przykład mam podmioty: klient, raport. Klient może mieć wiele raportów i myślę, że punkt końcowy dla jednego zarządzania raportami powinien być zagnieżdżony w następujący sposób: /clients/{client_id}/reports/{report_id} Jeśli chodzi o wszystkie raporty jednego klienta, oczekuje się enpoint: /clients/{client_id}/reports Ale jak powinien wyglądać punkt końcowy dla uzyskania wszystkich raportów wszystkich klientów, …
12 rest  api  api-design 

3
Czy złym zwyczajem jest używanie łączników w kluczach JSON?
Widzę wiele pytań dotyczących dostępu do klawiszy JSON, które używają łączników (kebab-case), ale teraz zastanawiam się, czy powinienem po prostu trzymać się camelCase lub snake_case w moich kluczach. Wiem, że łączniki mogą również tworzyć skomplikowane odwzorowania, gdy są przenoszone między językami. Widziałem, jak niektóre biblioteki JSON przekształcają te klucze w …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.