Merge pull request #63 from grant/patch-1

Delete OLDOCS.md
This commit is contained in:
Fabio José 2020-04-27 15:24:04 -03:00 committed by GitHub
commit bb9b2118f5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 0 additions and 177 deletions

177
OLDOCS.md
View File

@ -1,177 +0,0 @@
# Docs for old spec versions
Here are living the examples of old specs implementations.
## How to use
The `Cloudevent` constructor arguments.
```js
/*
* spec : if is null, set the spec 0.1 impl
* format: if is null, set the JSON Format 0.1 impl
*/
Cloudevent(spec, format);
```
### Usage
```js
var Cloudevent = require("cloudevents-sdk");
var Spec02 = require("cloudevents-sdk/v02");
/*
* Constructs a default instance with:
* - Spec 0.1
* - JSON Format 0.1
*/
var cloudevent01 = new Cloudevent();
/*
* Implemented using Builder Design Pattern
*/
cloudevent01
.type("com.github.pull.create")
.source("urn:event:from:myapi/resourse/123");
/*
* Backward compatibility to spec 0.1 by injecting methods from spec
* implementation to Cloudevent
*/
cloudevent01
.eventTypeVersion("1.0");
/*
* Constructs an instance with:
* - Spec 0.2
* - JSON Format 0.1
*/
var cloudevent02 = new Cloudevent(Cloudevent.specs["0.2"]);
/*
* Different specs, but the same API.
*/
cloudevent02
.type("com.github.pull.create")
.source("urn:event:from:myapi/resourse/123");
```
#### Formatting
```js
var Cloudevent = require("cloudevents-sdk");
/*
* Creates an instance with default spec and format
*/
var cloudevent =
new Cloudevent()
.type("com.github.pull.create")
.source("urn:event:from:myapi/resourse/123");
/*
* Format the payload and return it
*/
var formatted = cloudevent.format();
```
#### Emitting
```js
var Cloudevent = require("cloudevents-sdk");
// The event
var cloudevent =
new Cloudevent()
.type("com.github.pull.create")
.source("urn:event:from:myapi/resourse/123");
// The binding configuration using POST
var config = {
method: "POST",
url : "https://myserver.com"
};
/*
* To use HTTP Binary:
* Cloudevent.bindings["http-binary0.2"](config);
*/
// The binding instance
var binding = new Cloudevent.bindings["http-structured0.1"](config);
// Emit the event using Promise
binding.emit(cloudevent)
.then(response => {
// Treat the response
console.log(response.data);
}).catch(err => {
// Deal with errors
console.error(err);
});
```
#### Receiving Events
You can choose any framework for port binding. But, use the Unmarshaller
to process the HTTP Payload and HTTP Headers, extracting the CloudEvents.
The Unmarshaller will parse the HTTP Request and decides if it is a binary
or a structured version of transport binding.
:smiley: **Checkout the full working example: [here](./examples/express-ex).**
```js
// some parts were removed //
const v02 = require("cloudevents-sdk/v02");
const unmarshaller = new v02.HTTPUnmarshaller();
// some parts were removed //
app.post('/', function (req, res) {
unmarshaller.unmarshall(req.body, req.headers)
.then(cloudevent => {
// TODO use the cloudevent
res.status(201)
.send("Event Accepted");
})
.catch(err => {
console.error(err);
res.status(415)
.header("Content-Type", "application/json")
.send(JSON.stringify(err));
});
});
```
## The API
### `Unmarshaller` classes
The Unmarshaller classes uses the receiver API, abstracting the formats:
- structured
- binary
Choosing the right implementation based on the `headers` map.
```js
/*
* Constructor without arguments
*/
Unmarshaller()
/*
* The method to unmarshall the payload.
* @arg payload could be a string or a object
* @arg headers a map of headers
*/
Promise Unmarshaller.unmarshall(payload, headers)
```