6
votes

Existe-t-il un client JavaScript de repos entièrement implémenté?

J'ai expérimenté et recherchons des clients JavaScript pour des services Web reposants. À peu près tout ce que j'ai vu semble être limité aux définitions de modèle de recréer dans le client et à faire du crud sur des modèles simples (non liés).

Qu'est-ce que je cherche

  • capacité à créer de manière dynamique des modèles (et / ou proxys et / ou stockes) dans le client donné une URI au schéma JSONREST fourni par l'API Server
  • capacité à gérer les relations de manière nativement (c'est-à-dire sans créer de tas de fonctions personnalisées ni remplacer de nombreuses fonctionnalités intégrées). Je parle de 1-> N, 1-> 1, N-> 1 et N-> M Relations.
  • Capacité à travailler relativement bien avec un cadre client complet de fonctionnalités telles que ExtJS ou Dojo.

    Qu'est-ce que j'ai essayé

    • ExtJS 4.1: Great Widget Set, capable de faire une mise en page complètement programmatique, «Ajax» / «Rest» Proxies Travailler hors de la zone pour des modèles simples. Aucune communauté IRC ou DEV que je puisse trouver, une réactivité limitée sur les forums GPL.
    • dojo [actuel]: a besoin de personnalisé remplacer sur JSONRESTSTORE pour fonctionner avec des modèles de base. De grands widgets, difficilement à éviter complètement HTML.
    • J'ai également examiné divers outils basés sur jQuery et un peu sur Backbone.js (http://backbonejs.org est en panne pour le moment.). Les trucs jQuery me semblent complètement disjoints. S'il y a de bons outils de repos JQuery, je suis ouvert à eux, je dois juste avoir besoin de pointeurs vers la documentation sur la manière de développer des applications cohérentes et gérables avec elles.

      objectif de base

      • Développer des applications client Web qui sont maintenues au fil du temps et sont "sèches". C'est-à-dire qu'il y a aussi peu de colypage de {param1: 'asdf', param2: 30, ...} dans les "classes" associées. Idéalement, s'il est défini sur le serveur, le client doit l'obtenir de l'API de repos. S'il est défini dans le client, d'autres parties du client devraient pouvoir hériter / prolonger cette définition.

        Une autre façon de le dire:

        • La plupart des frameworks JS suivent le motif MVC. Ce qui, pour moi, est stupide depuis que mon "M" est déjà sur le serveur avec une partie du "C". Je veux que mon client soit un "VC", de recréer uniquement le modèle côté serveur que nécessaire pour le fonctionnement asynchrone axé sur la présentation de l'interface utilisateur et les actions de l'utilisateur. Ce qui signifie que idéalement aucun des "m" dans "mvc" ne sera codé dur dans le client.

          Y a-t-il un client de repos JavaScript complet en vedette que quelqu'un peut me diriger vers. Merci.


0 commentaires

6 Réponses :


2
votes

Quelques liens que vous souhaitez probablement regarder:

URL alternative pour backbonejs.org : http://documentcloud.github.com / Backbone /

Comme vous le savez peut-être, la Backbone crée des objets tels que des collections et des modèles en fonction de vos données.

Cartographie relationnelle : https://github.com/pauluithol/backbone -Reloque /

Si vous souhaitez avoir un mappage de données relationnel dans la colonne vertébrale, suivez le lien ci-dessus

JSON Schema Validator : https://github.com/garycourt/jsv

Ceci est pratique si vous êtes inquiet de vous assurer de vous assurer d'adhérer à un certain schéma JSON, vous pouvez étendre dressbone.js pour valider un côté client-côté du client en remplaçant la méthode Validate .


5 commentaires

Merci, j'ai regardé la colonne vertébrale Github, mais j'espérais vraiment regarder certaines de leurs tuts et leurs exemples. Je sais que certaines des goûts de Tastypie recommandent de la backbone, qui compte depuis que j'aime Tastypie et Django sur le serveur. Je vais regarder à travers vous d'autres liens en ce moment. Avez-vous une idée de la backbone s'intègre avec ExtJS ou Dojo en tant que cadre UI?


Les tutoriels et les exemples sont sur leur wiki GitHub, en quelque sorte caché de la documentation officielle: github.com/documentcloud/backbone/wiki/...


Ahh ... cool. Backbone-Relationnel EXCELLENT.


Concernant JSONREST SCHEMAS, je suis fouillé pour définir uniquement les modèles sur le serveur? Les schémas sont-ils utilisés, en pratique, uniquement pour la validation par opposition à l'inférence du modèle?


Comme avec tout le logiciel, cela dépend vraiment de vos besoins. La validation de vos données contre un schéma particulier côté client et le côté serveur vous bénéficiera à la fin en fonction de l'expérience utilisateur, car vous n'aurez pas besoin d'une longue demande de trajet aller-retour. Rien ne vous empêche d'écrire un exportateur pour créer des versions côté client de votre schéma JSON. J'utilise JSV dans quelques cas et il est tout à fait pratique parfois.



1
votes

Essayez https://github.com/avoidwork/abaaso , j'ai entendu de belles choses à ce sujet.


6 commentaires

On dirait que cela pourrait avoir un jour potentiel. En ce moment, il y a très peu de documentation, pas d'informations sur les relations et aucune information sur l'intégration avec quoi que ce soit autre que le HTML DOM. Idéal pour les tâches légères. Ne ressemble pas à ce dont j'ai besoin pour la maintenabilité dans une application modérément complexe. Merci quand même.


Je pense que la mauvaise idée que vous avez est que c'est un plugin pour d'autres cadres, il est utilisé au lieu de ExtJS ou de Dojo. Pour vos besoins, vous seriez probablement concentré sur le magasin de données Github.com/avoidwork/abaaso/ wiki / données , et peut-être les méthodes client.


Eh bien, je l'ai regardé plus bien ce soir. Je dois dire que j'aime beaucoup l'accent mis sur le repos de repos. La raison que je l'ai mentionnée en termes d'intégration avec EXT ou DOJO (ou même JQueryui une fois qu'elle mûrit) est une exigence de base de la mienne. Si vous connaissez des exemples d'une utilisation d'Abaaso en tant que couche de données avec une boîte à outils intégrée UI, j'aimerais voir.


Si vous avez des questions me ping sur Twitter ou par Github. La documentation manque; C'est sur ma liste de "TODO" pour la copier plus. Vous pouvez le charger avec n'importe quel cadre / LIB et exploiter uniquement les pièces dont vous avez besoin. Je fais ça avec FileTrek.com, mais ce n'est pas vraiment public au travail. J'ai fait quelques petites preuves en utilisant, mais je manque généralement de temps. C'est immature, mais c'est presque grandi.


Merci pour l'offre. Je pourrais juste vous remettre dessus.


J'ai oublié de mentionner, c'est N-N ou N-1 en fonction des données que vous consommez.



0
votes

Si vous ne voulez pas tout un cadre, procédez comme si vous essayez: https://github.com /jpillora/jQuery.Rest C'est assez nouveau, alors veuillez poster des problèmes, des bogues, des demandes de fonctionnalités!


0 commentaires

0
votes

Je pense que le problème de la recherche d'une bonne banque de clients est que nous (comme dans la communauté Web) n'ayant pas encore une compréhension complète et complète du repos et comment créer une bibliothèque de serveur.

techniques telles que HAL ( http://ssatess.co/hal_specification.html ) peut offrir le Meilleure direction en avant. Lorsque vous avez un ensemble d'API qui s'engagent à haïssez ( http://fr.wikipedia.org/wiki/heoas ) Et cela fonctionne vraiment de manière à permettre le lien hypertexte de conduire l'application, vous avez un moyen de construire des extrémités avant de poids très légères qui n'ont pas besoin de reconstruire tous les objets et de repenser chaque règle d'entreprise. < / p>


0 commentaires

2
votes

Consultez mon client Json-Hyper-Schema JavaScript. Il construit dynamiquement une application client HTML utilisant angular, en analysant le schéma fourni à un point de terminaison de ressources donné avec la méthode Options.

https://github.com/bpanahij/passportedu_schema/tree/master/Client < / a>

J'ai travaillé sur une hateoas (HyperMedia comme moteur d'application de l'application) API, utilisant le schéma hyper JSON. Vous pouvez aller à l'URL ci-dessous, parcourir, enregistrer, vous connecter et faire des actions.

Vérifiez-le, ici: http://direct.psprt.com:8081/

J'ouvre également l'a acheté mon code API actuel jusqu'à présent: https://github.com/bpanahij/passPortedu_schema

N'hésitez pas à jeter un coup d'œil, emprunter et commenter.

[JSON HYPER SCHEMA] [1] (voir aussi [JSON-SCHEMA] [2])


1 commentaires

Les liens sont cassés



0
votes

Essayez Repossible.js . La syntaxe expressif permet la nidification des ressources, s'accumule sur des promesses et reste hors de votre chemin. Il est inspiré par Restankular, seulement il est autonome.

Disclaimer: nous l'avons écrit.


0 commentaires