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:
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:
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 simplementCode:
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:
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
Je vous laisse délibéré. si vous estimez que cela vaut le coup je ferais le portage et le mettrais dans contrib.Code:
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