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 ceciCela permet donc de construire son uri au fur et à mesure qu'on à les info nécessaire.
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
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#ancre1Je vous laisse délibéré. si vous estimez que cela vaut le coup je ferais le portage et le mettrais dans contrib.
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
A+JYT
Partager