neft
Version:
Universal Platform
106 lines (78 loc) • 4.74 kB
Markdown
> [Wiki](Home) ▸ [[API Reference|API-Reference]] ▸ [[Networking|Networking-API]] ▸ **Uri**
# Uri
> [`Source`](/Neft-io/neft/blob/e79ebc2b61607e795a53c22d1577605addf00689/src/networking/uri.litcoffee)
## Table of contents
* [Uri](#uri)
* [**Class** Uri](#class-uri)
* [constructor](#constructor)
* [protocol](#protocol)
* [auth](#auth)
* [host](#host)
* [path](#path)
* [params](#params)
* [query](#query)
* [hash](#hash)
* [test](#test)
* [match](#match)
* [toString](#tostring)
* [Glossary](#glossary)
# **Class** Uri
> [`Source`](/Neft-io/neft/blob/e79ebc2b61607e795a53c22d1577605addf00689/src/networking/uri.litcoffee)
##constructor
<dl><dt>Syntax</dt><dd><code>Uri::constructor(*String* uri)</code></dd><dt>Prototype method of</dt><dd><i>Uri</i></dd><dt>Parameters</dt><dd><ul><li>uri — <i>String</i></li></ul></dd></dl>
Represents an uri string with parameters.
The parameter must be wrapped by the curly brackets **{…}**.
**Rest parameters** are not greedy and are wrapped by the **{…*}** or just **…***.
Rest parameters don't have to be named (**{*}** is allowed).
```javascript
var uri = new Networking.Uri('articles/{pageStart}/{pageEnd}');
console.log(uri.match('articles/2/4'));
// { pageStart: '2', pageEnd: '4' }
var uri = new Networking.Uri('comments/{path*}/{page}');
console.log(uri.match('comments/article/world/test-article/4'));
// { path: 'article/world/test-article', page: '4' }
```
Access it with:
```javascript
var Networking = require('networking');
var Uri = Networking.Uri;
```
> [`Source`](/Neft-io/neft/blob/e79ebc2b61607e795a53c22d1577605addf00689/src/networking/uri.litcoffee#uriconstructorstring-uri)
##protocol
<dl><dt>Syntax</dt><dd><code>*String* Uri::protocol</code></dd><dt>Prototype property of</dt><dd><i>Uri</i></dd><dt>Type</dt><dd><i>String</i></dd></dl>
##auth
<dl><dt>Syntax</dt><dd><code>*String* Uri::auth</code></dd><dt>Prototype property of</dt><dd><i>Uri</i></dd><dt>Type</dt><dd><i>String</i></dd></dl>
##host
<dl><dt>Syntax</dt><dd><code>*String* Uri::host</code></dd><dt>Prototype property of</dt><dd><i>Uri</i></dd><dt>Type</dt><dd><i>String</i></dd></dl>
##path
<dl><dt>Syntax</dt><dd><code>*String* Uri::path</code></dd><dt>Prototype property of</dt><dd><i>Uri</i></dd><dt>Type</dt><dd><i>String</i></dd></dl>
##params
<dl><dt>Syntax</dt><dd><code>*Object* Uri::params</code></dd><dt>Prototype property of</dt><dd><i>Uri</i></dd><dt>Type</dt><dd><a href="/Neft-io/neft/wiki/Utils-API#isobject">Object</a></dd></dl>
Holds the last *Uri::match()* result.
##query
<dl><dt>Syntax</dt><dd><code>*Object* Uri::query</code></dd><dt>Prototype property of</dt><dd><i>Uri</i></dd><dt>Type</dt><dd><a href="/Neft-io/neft/wiki/Utils-API#isobject">Object</a></dd></dl>
##hash
<dl><dt>Syntax</dt><dd><code>*String* Uri::hash</code></dd><dt>Prototype property of</dt><dd><i>Uri</i></dd><dt>Type</dt><dd><i>String</i></dd></dl>
##test
<dl><dt>Syntax</dt><dd><code>*Boolean* Uri::test(*String* uri)</code></dd><dt>Prototype method of</dt><dd><i>Uri</i></dd><dt>Parameters</dt><dd><ul><li>uri — <i>String</i></li></ul></dd><dt>Returns</dt><dd><i>Boolean</i></dd></dl>
Test whether the uri is valid with the given string.
> [`Source`](/Neft-io/neft/blob/e79ebc2b61607e795a53c22d1577605addf00689/src/networking/uri.litcoffee#boolean-uriteststring-uri)
##match
<dl><dt>Syntax</dt><dd><code>*Object* Uri::match(*String* uri)</code></dd><dt>Prototype method of</dt><dd><i>Uri</i></dd><dt>Parameters</dt><dd><ul><li>uri — <i>String</i></li></ul></dd><dt>Returns</dt><dd><a href="/Neft-io/neft/wiki/Utils-API#isobject">Object</a></dd></dl>
Returns found parameters from the given string.
If the given uri is not valid with the uri, error will be raised.
> [`Source`](/Neft-io/neft/blob/e79ebc2b61607e795a53c22d1577605addf00689/src/networking/uri.litcoffee#object-urimatchstring-uri)
##toString
<dl><dt>Syntax</dt><dd><code>*String* Uri::toString([*Object|Dict* params])</code></dd><dt>Prototype method of</dt><dd><i>Uri</i></dd><dt>Parameters</dt><dd><ul><li>params — <i>Object|Dict</i> — <i>optional</i></li></ul></dd><dt>Returns</dt><dd><i>String</i></dd></dl>
Parses the uri into a string.
The given params object is used to replace the uri parameters.
```javascript
var uri = new Networking.Uri('user/{name}');
console.log(uri.toString({name: 'Jane'}));
// /user/Jane
console.log(uri.toString());
// /user/{name}
```
> [`Source`](/Neft-io/neft/blob/e79ebc2b61607e795a53c22d1577605addf00689/src/networking/uri.litcoffee#string-uritostringobjectdict-params)
# Glossary
- [Networking.Uri](#class-uri)