neft
Version:
Universal Platform
185 lines (142 loc) • 12.3 kB
Markdown
> [Wiki](Home) ▸ [[API Reference|API-Reference]] ▸ **Networking**
# Networking
This module cares about communication client-server and client internally.
Currently only the HTTP protocol is supported.
Access it with:
```javascript
var Networking = require('networking');
```
> [`Source`](/Neft-io/neft/blob/2a55740be84e38fd33bba22916304f1dd143b871/src/networking/index.litcoffee)
## Nested APIs
* [[Handler|Networking-Handler-API]]
* [[Request|Networking-Request-API]]
* [[Response|Networking-Response-API]]
* [[Response Error|Networking-Response Error-API]]
* [[Uri|Networking-Uri-API]]
## Table of contents
* [Networking](#networking)
* [**Class** Networking](#class-networking)
* [constructor](#constructor)
* [onRequest](#onrequest)
* [protocol](#protocol)
* [port](#port)
* [host](#host)
* [url](#url)
* [language](#language)
* [pendingRequests](#pendingrequests)
* [createHandler](#createhandler)
* [createRequest](#createrequest)
* [get](#get)
* [post](#post)
* [put](#put)
* [delete](#delete)
* [resolveRequest](#resolverequest)
* [createLocalRequest](#createlocalrequest)
* [Local requests](#local-requests)
* [Requests to the server](#requests-to-the-server)
* [Glossary](#glossary)
# **Class** Networking
> [`Source`](/Neft-io/neft/blob/2a55740be84e38fd33bba22916304f1dd143b871/src/networking/index.litcoffee)
##constructor
<dl><dt>Syntax</dt><dd><code>Networking::constructor(*Object* options)</code></dd><dt>Prototype method of</dt><dd><a href="/Neft-io/neft/wiki/Networking-API#class-networking">Networking</a></dd><dt>Parameters</dt><dd><ul><li>options — <a href="/Neft-io/neft/wiki/Utils-API#isobject">Object</a></li></ul></dd></dl>
Options:
- `allowAllOrigins` determines whether *Access-Control-Allow-Origin* should return wildcard,
false by default
> [`Source`](/Neft-io/neft/blob/2a55740be84e38fd33bba22916304f1dd143b871/src/networking/index.litcoffee#networkingconstructorobject-options)
##onRequest
<dl><dt>Syntax</dt><dd><code>*Signal* Networking::onRequest(*Networking.Request* request, *Networking.Response* response)</code></dd><dt>Prototype method of</dt><dd><a href="/Neft-io/neft/wiki/Networking-API#class-networking">Networking</a></dd><dt>Parameters</dt><dd><ul><li>request — <a href="/Neft-io/neft/wiki/Networking-Request-API#class-request">Networking.Request</a></li><li>response — <a href="/Neft-io/neft/wiki/Networking-Response-API#class-response">Networking.Response</a></li></ul></dd><dt>Type</dt><dd><a href="/Neft-io/neft/wiki/Signal-API#class-signal">Signal</a></dd></dl>
> [`Source`](/Neft-io/neft/blob/2a55740be84e38fd33bba22916304f1dd143b871/src/networking/index.litcoffee#signal-networkingonrequestnetworkingrequest-request-networkingresponse-response)
##protocol
<dl><dt>Syntax</dt><dd><code>ReadOnly *String* Networking::protocol</code></dd><dt>Prototype property of</dt><dd><a href="/Neft-io/neft/wiki/Networking-API#class-networking">Networking</a></dd><dt>Type</dt><dd><i>String</i></dd><dt>Read Only</dt></dl>
> [`Source`](/Neft-io/neft/blob/2a55740be84e38fd33bba22916304f1dd143b871/src/networking/index.litcoffee#readonly-string-networkingprotocol)
##port
<dl><dt>Syntax</dt><dd><code>ReadOnly *Integer* Networking::port</code></dd><dt>Prototype property of</dt><dd><a href="/Neft-io/neft/wiki/Networking-API#class-networking">Networking</a></dd><dt>Type</dt><dd><a href="/Neft-io/neft/wiki/Utils-API#isinteger">Integer</a></dd><dt>Read Only</dt></dl>
> [`Source`](/Neft-io/neft/blob/2a55740be84e38fd33bba22916304f1dd143b871/src/networking/index.litcoffee#readonly-integer-networkingport)
##host
<dl><dt>Syntax</dt><dd><code>ReadOnly *String* Networking::host</code></dd><dt>Prototype property of</dt><dd><a href="/Neft-io/neft/wiki/Networking-API#class-networking">Networking</a></dd><dt>Type</dt><dd><i>String</i></dd><dt>Read Only</dt></dl>
> [`Source`](/Neft-io/neft/blob/2a55740be84e38fd33bba22916304f1dd143b871/src/networking/index.litcoffee#readonly-string-networkinghost)
##url
<dl><dt>Syntax</dt><dd><code>ReadOnly *String* Networking::url</code></dd><dt>Prototype property of</dt><dd><a href="/Neft-io/neft/wiki/Networking-API#class-networking">Networking</a></dd><dt>Type</dt><dd><i>String</i></dd><dt>Read Only</dt></dl>
URL path contains a protocol, port and a host.
It can be set manually if the external address is different.
Otherwise it's created automatically.
> [`Source`](/Neft-io/neft/blob/2a55740be84e38fd33bba22916304f1dd143b871/src/networking/index.litcoffee#readonly-string-networkingurl)
##language
<dl><dt>Syntax</dt><dd><code>ReadOnly *String* Networking::language</code></dd><dt>Prototype property of</dt><dd><a href="/Neft-io/neft/wiki/Networking-API#class-networking">Networking</a></dd><dt>Type</dt><dd><i>String</i></dd><dt>Read Only</dt></dl>
Indicates the application language regarding to BCP47 (e.g. 'en', 'en-US').
> [`Source`](/Neft-io/neft/blob/2a55740be84e38fd33bba22916304f1dd143b871/src/networking/index.litcoffee#readonly-string-networkinglanguage)
##pendingRequests
<dl><dt>Syntax</dt><dd><code>ReadOnly *List* Networking::pendingRequests</code></dd><dt>Prototype property of</dt><dd><a href="/Neft-io/neft/wiki/Networking-API#class-networking">Networking</a></dd><dt>Type</dt><dd><a href="/Neft-io/neft/wiki/List-API#class-list">List</a></dd><dt>Read Only</dt></dl>
##createHandler
<dl><dt>Syntax</dt><dd><code>*Networking.Handler* Networking::createHandler(*Object* options)</code></dd><dt>Prototype method of</dt><dd><a href="/Neft-io/neft/wiki/Networking-API#class-networking">Networking</a></dd><dt>Parameters</dt><dd><ul><li>options — <a href="/Neft-io/neft/wiki/Utils-API#isobject">Object</a></li></ul></dd><dt>Returns</dt><dd><a href="/Neft-io/neft/wiki/Networking-Handler-API#class-handler">Networking.Handler</a></dd></dl>
Use this method to create a new [Networking.Handler](/Neft-io/neft/wiki/Networking-Handler-API#class-handler).
```javscript
app.networking.createHandler({
method: 'get',
uri: '/users/{name}',
schema: new Schema({
name: {
type: 'string',
min: 3
},
}),
callback: function(req, res, next){
res.raise(new Networking.Response.Error(Networking.Response.NOT_IMPLEMENTED));
}
});
```
> [`Source`](/Neft-io/neft/blob/2a55740be84e38fd33bba22916304f1dd143b871/src/networking/index.litcoffee#networkinghandler-networkingcreatehandlerobject-options)
##createRequest
<dl><dt>Syntax</dt><dd><code>*Networking.Request* Networking::createRequest(*Object|Networking.Request* options)</code></dd><dt>Prototype method of</dt><dd><a href="/Neft-io/neft/wiki/Networking-API#class-networking">Networking</a></dd><dt>Parameters</dt><dd><ul><li>options — <i>Object|Networking.Request</i></li></ul></dd><dt>Returns</dt><dd><a href="/Neft-io/neft/wiki/Networking-Request-API#class-request">Networking.Request</a></dd></dl>
The given options object corresponds to the [Networking.Request](/Neft-io/neft/wiki/Networking-Request-API#class-request) properties.
> [`Source`](/Neft-io/neft/blob/2a55740be84e38fd33bba22916304f1dd143b871/src/networking/index.litcoffee#networkingrequest-networkingcreaterequestobjectnetworkingrequest-options)
##get
<dl><dt>Syntax</dt><dd><code>*Networking.Request* Networking::get(*String* uri, *Function* onLoadEnd)</code></dd><dt>Prototype method of</dt><dd><a href="/Neft-io/neft/wiki/Networking-API#class-networking">Networking</a></dd><dt>Parameters</dt><dd><ul><li>uri — <i>String</i></li><li>onLoadEnd — <i>Function</i></li></ul></dd><dt>Returns</dt><dd><a href="/Neft-io/neft/wiki/Networking-Request-API#class-request">Networking.Request</a></dd></dl>
> [`Source`](/Neft-io/neft/blob/2a55740be84e38fd33bba22916304f1dd143b871/src/networking/index.litcoffee#networkingrequest-networkinggetstring-uri-function-onloadend)
##post
<dl><dt>Syntax</dt><dd><code>*Networking.Request* Networking::post(*String* uri, [*Any* data], *Function* onLoadEnd)</code></dd><dt>Prototype method of</dt><dd><a href="/Neft-io/neft/wiki/Networking-API#class-networking">Networking</a></dd><dt>Parameters</dt><dd><ul><li>uri — <i>String</i></li><li>data — <i>Any</i> — <i>optional</i></li><li>onLoadEnd — <i>Function</i></li></ul></dd><dt>Returns</dt><dd><a href="/Neft-io/neft/wiki/Networking-Request-API#class-request">Networking.Request</a></dd></dl>
> [`Source`](/Neft-io/neft/blob/2a55740be84e38fd33bba22916304f1dd143b871/src/networking/index.litcoffee#networkingrequest-networkingpoststring-uri-any-data-function-onloadend)
##put
<dl><dt>Syntax</dt><dd><code>*Networking.Request* Networking::put(*String* uri, [*Any* data], *Function* onLoadEnd)</code></dd><dt>Prototype method of</dt><dd><a href="/Neft-io/neft/wiki/Networking-API#class-networking">Networking</a></dd><dt>Parameters</dt><dd><ul><li>uri — <i>String</i></li><li>data — <i>Any</i> — <i>optional</i></li><li>onLoadEnd — <i>Function</i></li></ul></dd><dt>Returns</dt><dd><a href="/Neft-io/neft/wiki/Networking-Request-API#class-request">Networking.Request</a></dd></dl>
> [`Source`](/Neft-io/neft/blob/2a55740be84e38fd33bba22916304f1dd143b871/src/networking/index.litcoffee#networkingrequest-networkingputstring-uri-any-data-function-onloadend)
##delete
<dl><dt>Syntax</dt><dd><code>*Networking.Request* Networking::delete(*String* uri, [*Any* data], *Function* onLoadEnd)</code></dd><dt>Prototype method of</dt><dd><a href="/Neft-io/neft/wiki/Networking-API#class-networking">Networking</a></dd><dt>Parameters</dt><dd><ul><li>uri — <i>String</i></li><li>data — <i>Any</i> — <i>optional</i></li><li>onLoadEnd — <i>Function</i></li></ul></dd><dt>Returns</dt><dd><a href="/Neft-io/neft/wiki/Networking-Request-API#class-request">Networking.Request</a></dd></dl>
> [`Source`](/Neft-io/neft/blob/2a55740be84e38fd33bba22916304f1dd143b871/src/networking/index.litcoffee#networkingrequest-networkingdeletestring-uri-any-data-function-onloadend)
##resolveRequest
<dl><dt>Syntax</dt><dd><code>Networking::resolveRequest(*Networking.Request* request)</code></dd><dt>Prototype method of</dt><dd><a href="/Neft-io/neft/wiki/Networking-API#class-networking">Networking</a></dd><dt>Parameters</dt><dd><ul><li>request — <a href="/Neft-io/neft/wiki/Networking-Request-API#class-request">Networking.Request</a></li></ul></dd></dl>
> [`Source`](/Neft-io/neft/blob/2a55740be84e38fd33bba22916304f1dd143b871/src/networking/index.litcoffee#networkingresolverequestnetworkingrequest-request)
##createLocalRequest
<dl><dt>Syntax</dt><dd><code>*Networking.Request* Networking::createLocalRequest(*Object|Networking.Request* options)</code></dd><dt>Prototype method of</dt><dd><a href="/Neft-io/neft/wiki/Networking-API#class-networking">Networking</a></dd><dt>Parameters</dt><dd><ul><li>options — <i>Object|Networking.Request</i></li></ul></dd><dt>Returns</dt><dd><a href="/Neft-io/neft/wiki/Networking-Request-API#class-request">Networking.Request</a></dd></dl>
Use this method to create a new [Request][networking/Request] and handle it.
The given options object corresponds to the [Request][networking/Request] properties.
Local and server requests are supported.
### Local requests
```javascript
app.networking.createRequest({
uri: '/achievements/world_2',
onLoadEnd: function(err, data){
if (this.response.isSucceed()){
console.log("Request has been loaded! Data: " + data);
} else {
console.log("Error: " + err);
}
}
});
```
### Requests to the server
```javascript
app.networking.createRequest({
method: 'post',
uri: 'http://server.domain/comments',
data: {message: 'Great article! Like it.'},
onLoadEnd: function(err, data){
if (this.response.isSucceed()){
console.log("Comment has been added!");
}
}
});
```
> [`Source`](/Neft-io/neft/blob/2a55740be84e38fd33bba22916304f1dd143b871/src/networking/index.litcoffee)
# Glossary
- [Networking](#class-networking)
- [HTTP](#class-networking)