Code Monkey home page Code Monkey logo

startxfr / api Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 0.0 22.25 MB

SXAPI is a lightweight and flexible framework for building open or private API with a minimum of time. Based on PHP and NOSQL technologies, this framework allow developpers to build their own API an deliver in a unified way various informations ressources.

License: BSD 3-Clause "New" or "Revised" License

ApacheConf 0.18% PHP 93.80% Shell 0.19% CSS 3.91% HTML 0.89% JavaScript 1.01%

api's People

Contributors

jorenga avatar startxfr avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

api's Issues

changer formation.auth.register

Changer cette resource pour la transformer en une sequence qui enchaine les action d'enregistrer dans le store nosql puis dans le store mysql.

On doit virer la propriété "store_sxa" qui est un cas spécifique. Nous ce que l'on veux, c'est bien d’enchaîner 2 actions donc : SEQUENCE ;)

Create a reserveTrainingStartxResource

Create a resource for recording a student reservation and sending a mail. Everything as to be configured in the resource description and resource should be exposed under the training/reserve node

soulever des exceptions et traiter les cas de mauvaises config

voir ton dev de aliasResource. Aucun controle n'est fait, c'est pas propre tout ca ;)

Que ce passe-t-il si il ne trouve pas la resource aliasée ? actuellement il va y avoir une page blanche et erreur fatale, alors qu'on devrai plutôt renvoyée une page rouge, avec un message explicatif. Quand tu sera sur ce ticket, passe me voir qu'on regarde ça ensemble, car j'ai l'impression que tu l'a fait sur aucune de tes resources.

implement OAuth google API

@startxfr you should implement and oauth google ressource to grant access to the API using google account. This plugin should also ask for the requiried API access and use a permanent token for offline access.

modif de conf sxcmd

dans sxcmd, mettre les informations variables (ex : nom de la branche de dev, identifiants d'accès à la base, etc... dans un fichier sxcmd.json.
Au chargement de sxcmd, on lit et deserialise ce fichier. S'il n'existe pas, on affiche une erreur fatale et on quit

create an update procedure

make an update process with upgrade of the code and patch mechanism for database. This patch should use the current instance configuration for that.

Add google API call

use a projet or develop a universal connector for access to the Google API

virer les log du dump mongodb

Virer la collection sxapi.log du script de dump auto des collections mongodb. Ca pise trop d'entrée et c'est pas utile de versionner tout ca.

modifier le fontionnement de mailResource

Rajouter la propriété "overwrite_params" comme dans l'exemple suivant :

{
   "_id": "mail",
   "body": "message automatique",
   "class": "mailResource",
   "host": "smtp.gmail.com",
   "password": "Joseph2014",
   "port": "587",
   "subject": "apidebug",
   "to": "[email protected]",
   "username": "[email protected]" 
   "overwrite_params" : [
       { in : "pour", map : "to" } ,
       { in : "sujet", map : "subject" } ,
       { in : "message", map : "body" } 
   ]
}

in correspond à la propriété que nous recherchons dans input
map corespond a la propriété de la config que nous venons modifier

Dans mon exemple, on prend en entrée ?pour=xx&sujet=yyy&message=zzz
et ca viendra changer le subject, to et body de la resource.

virer les resources sequences specifiques

virer les ressources contactlinkmailSequenceResource et createusermailSequenceResource

Si ce sont des resources qui servent à faire un traitement propre a formation, alors il faut les renommer en xxxxxxxFormationStartxResource et la ils seront a leur place.

supprimer la propriété "api" des resources

Vérifier qu'il n'y ai pas d'impact dans le code de l'API mais on devrai pouvoir supprimer la propriété "api" dans toutes les resources disponible.
Je l'avais créé pour :

  • Permettre depuis une resource de trouver le document api avec le tree qui l'appelle
  • Permettre d'interdire l'utilisation de la ressource en dehors de l'api qui l'a déclarée (ce qui evite qu'une resource mysql qui utilise un store defini dans l'api A ne soit utilisé dans l'api B et plante car pas de store valid)

Mais maintenant on s'en fou qu'une ressource soit associée à une ou plusieur api, et si il y a pas les bons store, input ou output, c'est la ressource qui est chargée de s'adaptée ou de planter.

problème de couleur sxcmd

quand on quitte sxcmd, la colorisation bleu ciel est applique sur le bash courant. Du coup tout le shell s'écrit en bleu ciel ce qui est illisible quand on est sur fond blanc.
au pire, avant de quitter lance la commande reset

log api request

add logging of every request made against the API. In session, only store first and last request ID stored in the request collection. This collection must be activated using a plugin for configuration

changer la conf serveur dans mailResource

Regrouper les propriétés host, password, port et username dans une propriété parente commune nommée "server"

{
   "_id": "mail",
   "class": "mailResource",
   "server" : {
       "host": "smtp.gmail.com",
       "password": "xxx",
       "port": "587",
       "username": "xxx" 
   },   
   "subject": "apidebug",
   "to": "[email protected]",
   "body": "message automatique",
   "overwrite_params" : ...
}

modifier la config des defaultSequenceResource

rendre plus flexible la ressource sequence en utilisant la structure de config suivante

{
   "_id": "xxx",
   "api": "startx",
   "class" : "defaultSequenceResource",
   "seq_conf": [
        { "resource": "contacts", "param_surcharge_conf" : "valeur"},
        { "resource": "contmesslink", "param_surcharge_conf" : "valeur2"} ,
        { "resource": "mail","action": "post"} 
    ] 
}

servir les testdata via l'API

mettre dasn l'API les resources permettant de servir les testdata_*.json que nous avons a la racine de notre projet.
Les données seront stockées dans la base mongo, sur les collections suivantes:

  • testdata_partners.json > formation.partners
  • testdata_sessions.json > sxapi.session
  • testdata_technologies.json > formation.technologies
  • testdata_training.json > formation.trainings

Supprimer ces fichiers ainsi que test_info_google.php et test_perso_google.php si plus utilisés

add a test client

in jquerymobile, try a test client and add it in tools. The purpose is to perform a set of test against the SXAPI

Faire les example dans le code source

tu as fait un truc dans mysqlModelResource::$ConfDesc qui est bien, ca nous fait des doc, MAIS....

tu t'en sert nul part. Du coup, tu va passer qq petites heures pour nous mettre tout ca d'équerre ;) Si tu peut rajouter les commentaires + $ConfDesc prioritairement dans les resources :

  • Ressources primaires (à la racine du dossier lib/resources)
  • Ressources Http
  • Ressources Register
  • Ressources Sequence
  • Ressources Model

Et quand tu commente un groupe de ressource, commente bien tout les fichiers qui sont dans le dossier d'un coup, et fait un commit avec un message genre "ajout des doc et commentaire pour XXX" une fois terminer, tu peut faire un push + génération automatique de doc histoire de voir le résultat sur github ;)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.