IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

URI Scheme: URIBuilder


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut URI Scheme: URIBuilder
    bonjour.

    si vous allez sur la page : http://en.wikipedia.org/wiki/URI_scheme
    vous trouverez une doc sur la syntaxe des URI (URN, URL)
    dont voici un résumé:
    Code plaintext : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
      foo://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose
      \_/   \_______________/ \_________/ \__/            \___/ \_/ \______________________/ \__/
       |           |               |       |                |    |            |                |
       |       userinfo         hostname  port              |    |          query          fragment
       |    \________________________________/\_____________|____|/ \__/ \____/ \__/ \_____/
       |                    |                          |    |    |    |     |     |     |
    scheme              authority                    path   |    |    interpretable as keys
     name   \_______________________________________________|____|/         |           |
       |                         |                          |    |    interpretable as values
       |                 hierarchical part                  |    |
       |                                                    |    |
       |            path               interpretable as filename |
       |   ___________|____________                              |
      / \ /                        \                             |
      urn:example:animal:ferret:nose               interpretable as extension
     
     scheme
      name  userinfo  hostname       query
      _|__   ___|__   ____|____   _____|_____
     /    \ /      \ /         \ /           \
     mailto:username@example.com?subject=Topic

    Je développe en java en ce moment et Java propose une classe URI qui permet de manipuler des URIs ou des URL mais ces classe ne propose rien pour les construire ci ce n'est passer tous les paramètres à l'instanciation.

    créant dynamiquement beaucoup d'uri à partir de nombreuses informations issues de diverses source je me suis fait une classe URIBuilder qui propose un DSL pour créer une URI comme ceci
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    URIBuilder uriBuilder =  new URIBuilder();
    uriBuilder.scheme("http")
       .host("localhost")
       .path("/un/chemin/vers/un/fichier.html")
       .fragment("ancre1");
    URI uri = uriBuilder.getURI();
    uri.openAsStream();
    ...
    log.info(uriBuilder.getStringURI());
    // -> http://localhost/un/chemin/vers/un/fichier.html#ancre1
    Cela permet donc de construire son uri au fur et à mesure qu'on à les info nécessaire.
    par exemple ajouter le user et login à l'uri précédente se fait simplement
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    uriBuilder.username("jhon").password("doe");
    log.info(uriBuilder.getStringURI());
    // -> http://jhon:doe@localhost/un/chemin/vers/un/fichier.html#ancre1

    Je me demande si ça peut intéresser quelqu'un que je le porte en javascript et le mette dans les contributions.
    on pourrait avoir quasi le même code à l'usage.
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    uriBuilder =  new URIBuilder();
    uriBuilder.scheme("http")
       .host("localhost")
       .path("/un/chemin/vers/un/fichier.html")
       .fragment("ancre1")
       .username("jhon")
       .password("doe");
    console.log(uriBuilder.getStringURI());
    // -> http://jhon:doe@localhost/un/chemin/vers/un/fichier.html#ancre1
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    urnBuilder =  new URIBuilder();
    urnBuilder.scheme("urn")
       .path("org.foo.uri.builder")
    console.log(urnBuilder.getStringURI());
    // -> urn:org.foo.uri.builder
    Je vous laisse délibéré. si vous estimez que cela vaut le coup je ferais le portage et le mettrais dans contrib.

    A+JYT

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Alors pour être franc, je ne vois pas de cas où cela aurait pu me servir...

    Ceci dit, je trouve l'idée assez séduisante et le code pourrait lui aussi être intéressant à regarder, donc perso, je vote pour !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut


    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

Discussions similaires

  1. [JavaScript] URI Scheme: URIBuilder
    Par sekaijin dans le forum Contribuez
    Réponses: 4
    Dernier message: 24/03/2012, 11h32
  2. Réponses: 0
    Dernier message: 07/09/2008, 06h28
  3. MAPPING configuration error for request URI
    Par Turtle dans le forum JBuilder
    Réponses: 1
    Dernier message: 17/02/2005, 11h56
  4. prolog et scheme
    Par bourvil dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 30/09/2003, 12h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo