ngResource
już wydaje się naprawdę proste do wdrożenia rzeczy za pomocą ...
Jakie są zalety / wady korzystania Restangular nad ngResource ?
1.1.3 $resource
zwróci obietnice i może zostać zrealizowane przy użyciu ostatniego zatwierdzenia PR . Czy w przyszłości zostanie zaoferowane $resource
wsparcie dla dodatkowych czasowników, które obsługuje Restangular? A jeśli tak się stanie, Restangular wydaje się, że zniknie i stanie się nieistotny.
javascript
angularjs
restangular
ngresource
Dan Kanze
źródło
źródło
$http
w angularjs zostaną wprowadzone poważne zmiany w wydaniu - nie będziesz w stanie zaktualizować, ponieważ wezwania serwisowe Restangualr będą oczekiwały „czegoś innego”, a skończysz na wypatroszeniu tego frameworka, z którym „zdecydowałeś się pójść”.Odpowiedzi:
Jestem twórcą Restangular.
Utworzyłem sekcję w pliku README z różnicami w stosunku do $ resource. Możesz je sprawdzić tutaj https://github.com/mgonto/restangular/blob/master/README.md#differences-with-resource
W każdym razie, podsumowując, poza dodatkowymi funkcjami i podejściem opartym na obietnicach, idea jest taka, że Restangular może również obsłużyć wszystkie twoje adresy URL, więc nie musisz nic o nich wiedzieć.
Załóżmy, że masz coś takiego dla samochodów: / users / 123 / cars / 456
W $ resource musiałbyś ręcznie utworzyć ten adres URL, a także musiałbyś ręcznie utworzyć obiekt $ resource. Restangular pomaga w tym, „zapamiętując” adresy URL.
Więc jeśli to zrobisz w jakimś miejscu
Mam nadzieję że to pomoże!
źródło
.one('users', 123)
mniej lub bardziej „wiedzieć” o adresie URL niż'/users/123'
? (po prostu grając adwokata diabła) Wydaje się, że'/foo/123/bar/123'
jest to o wiele łatwiejsze niż.one('foo', 123).one('bar', 123)
.var user = Restangular.one('users', 123).getList()
. Później w kodzie lub w jakimś innym kontrolerzeuser.getList('buildings')
. Tutaj po prostu znasz następny typ, czyli budynki, ale pyta/users/123/buildings/
, więc nie musisz cały czas znać pełnego adresu URL$resource
- nie sugeruję, że stanie się nieistotna w jakikolwiek sposób, tylko że została wspomniana. Jakieś faktyczne wady lub pułapki, o których powinniśmy wiedzieć?Zauważyłem, że RequestInterceptor firmy Restangular jest całkiem przydatny do usuwania niektórych pól z obiektu przed wysłaniem żądania. Większość usług sieciowych REST, z którymi obecnie pracuję, nie oczekuje identyfikatora w danych obiektu w żądaniu PUT, na przykład tylko w adresie URL. Generalnie nie spodziewają się dodatkowych pól danych, których nie można zaktualizować przez PUT (takich jak id lub slug, który jest generowany przez ustawienie tytułu itp.). Okazało się, że jest to proste w przypadku Restangular, chociaż nie wymyśliłem, jak to zrobić z $ resource w czysty sposób, ale jestem pewien, że jest to możliwe.
Oczywiście można również zmienić usługę sieciową, aby po prostu ignorować te dodatkowe pola, ale nie zawsze jest to możliwe.
źródło
ngResource nie zwraca obietnic w najnowszej stabilnej wersji (obecnie 1.0.6). Dodatkowo wygląda na to, że Restangular ujawnia więcej czasowników niż ngResource (ujawnia PUT, OPTIONS, PATCH itp.).
Jeśli nie potrzebujesz dodatkowych czasowników i znajdujesz się w niestabilnej gałęzi AngularJS (która zawiera obietnice dla ngResource), nie widzę żadnego ważnego powodu, aby używać Restangular zamiast ngResource.
Użyj tego, z czym czujesz się komfortowo.
źródło
$resource
zwróci obietnice i może zostać zrealizowane przy użyciu ostatniego zatwierdzenia PR. stackoverflow.com/questions/16429832/… Czy w przyszłości będzie oferowana$resource
obsługa dodatkowych czasowników? A jeśli tak się stanie, Restangular wydaje się, że zniknie i stanie się nieistotny.W następstwie powyższych odpowiedzi i dla nowych czytelników, takich jak ja, zainteresowanych tymi myślami:
Moim zdaniem jedyną gwarancją przetrwania biblioteki open source jest społeczność zbudowana wokół niej. najlepszym przykładem mogą być mariaDB i WebScaleSQL, które narodziły się jako rosnący rozwidlenie wielkiego systemu zarządzania relacyjnymi bazami danych MySQL.
W chwili pisania tego tekstu Restangular
having 6699 stars and 727 forks
przechodzi teraz do Restangular 2.0, który ma wspierać angularJs 2.0 i ES6.źródło
Do szybkiej, prostej strony internetowej, którą chcesz uruchomić na zawsze z minimalnym wsparciem, użyłbym wbudowanego kątowego http HttpClient, ktokolwiek, kiedy pracuję nad projektem, który kocham i cieszę się i próbuję wtedy używać wszystkich fajnych technologii użyję NGX-Restangular
Powinieneś także wiedzieć, że ngx-restangular działa z usługami RESTful tylko tak, jak sugeruje nazwa. Tak więc w przypadku usług udostępniających SOAP nie będzie można używać Ngx-Restangular
https://ngx-restangular.com/
Biorąc to pod uwagę, przez większość czasu korzystałbym z ngx-restangular, ponieważ zawsze staram się pracować nad projektem, który uważam za fajny i próbuję wdrożyć to, co uważam za najlepsze.
Powodzenia!
źródło