Experimental HTTP request client for Node.js / HTML5. Provides Encapsule/ARCcore.filter wrappers for Node request module and XMLHttpRequest. Intended for use in Encapsule/holism-derived apps.
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib
.gitignore
.npmignore
LICENSE
README.md
client-factory.js
package.json
server-factory.js

README.md

Filter Object README

[B5dMHTIAQD2pjmji8kp_FA::Client Hrequest Filter Factory]

Constructs a client-side Hrequest filter object.

Operation

This operation is dispatched by calling the filter object's request method passing a single value input:

var response = filter.request(input);
if (response.error) {
    throw new Error(response.error); // <- response.result invalid
}
var result = response.result; // <- response.result valid

Request Input

This filter normalizes the value of input passed to its request method using the following filter spec contract:

{
    "____types": "jsObject",
    "name": {
        "____label": "HTTP Request Operation Name",
        "____description": "A short descriptive name to assign to the generated HTTP request filter object.",
        "____accept": "jsString"
    },
    "description": {
        "____label": "HTTP Request Operation Description",
        "____description": "A longer description of the purpose and functionality to assign to the generated HTTP request filter object.",
        "____accept": "jsString"
    },
    "url": {
        "____label": "HTTP Request URL",
        "____description": "Full URL of the remote endpoint to query including the leading HTTP protocol designation.",
        "____accept": "jsString"
    },
    "method": {
        "____label": "HTTP Request Method",
        "____description": "The specific HTTP request method to make requests with.",
        "____accept": "jsString",
        "____inValueSet": [
            "GET",
            "POST"
        ]
    },
    "querySpec": {
        "____label": "HTTP Request Query Params Object Filter Spec",
        "____description": "An Encapsule/arccore.filter-format JavaScript object descriptor specifying the schema of the query specification object that may be optionally specified at request time.",
        "____accept": "jsObject",
        "____defaultValue": {
            "____opaque": true
        }
    },
    "requestSpec": {
        "____label": "HTTP Request Body Params Object Filter Spec",
        "____description": "An Encapsule/arccore.filter-format JavaScript object descriptor specifying the schema of the main request object to pass as the body of the HTTP request.",
        "____accept": "jsObject",
        "____defaultValue": {
            "____opaque": true
        }
    },
    "resultSpec": {
        "____label": "HTTP Result Object Filter Spec",
        "____description": "An Encapsule/arccore.filter-format JavaScript object descriptor specifiying the schema of the result data that the remote endpoint is expected/required to return in response to the HTTP request.",
        "____accept": [
            "jsUndefined",
            "jsObject"
        ]
    },
    "resultHandler": {
        "____label": "HTTP Result Handler",
        "____description": "A JavaScript function to be called by the generated HTTP request filter when the request completes successfully.",
        "____accept": "jsFunction"
    },
    "errorHandler": {
        "____label": "HTTP Response Error Handler",
        "____description": "A JavaScript function to be called by the generated HTTP request filter if the request fails.",
        "____accept": "jsFunction"
    }
}

Response Output

This filter's request method returns a normalized response object when called.

var response = filter.request(input);
var result = undefined; // assume nothing
// You must check for an error condition.
if (!response.error) {
    // Operation succeeded and response.result is a valid value.
    result = response.result;
} else {
    // Operation failed and response.error is a string error message.
    throw new Error(response.error); // e.g.
}
// Use value held by result variable for subsequent operations...

Result Format

If no error then the value assigned to response.result is normalized per the following filter spec contract:

{
    "____accept": "jsObject",
    "____label": "Browser HTTP Request Filter"
}

Implementation

Identifiers

filter identifier version independent version dependent
operation B5dMHTIAQD2pjmji8kp_FA tkpLqwSo5dGk-p33dDtrFQ
input contract iLvwFYq42kkAlf4Wdskqyw onq0q4sVFTH8LJBHOcbc_Q
output contract YoEEvI6eJy0wX8ZZUMIpmA Ji6UAahFYATh97sTtTwPdg

Configuration

Filter classification: normalized operation

request stage stage description state
1. Input Filter Rejects invalid input requests and shapes to well-formed. true
2. Operation Developer-defined custom data transformation function. true
3. Response Filter Verifies the response of the developer-defined operation function. true
4. Output Filter Rejects invalid output result data and shapes to well-formed. true

Filters are created with the [Encapsule/arccore](https://github.com/Encapsule/arccore/) library.
This document was generated with [Encapsule/arctools](https://github.com/Encapsule/arctools/) v0.0.12 toolset.
Document updated Wed Jul 19 2017 13:41:04 GMT-0700 (PDT)