Difference between revisions of "User:Saul/feathers"

From Organic Design wiki
m (Client Authentication)
(Usage)
Line 47: Line 47:
 
== Manipulating MongoDB Arrays ==
 
== Manipulating MongoDB Arrays ==
 
https://docs.mongodb.com/manual/reference/operator/update-array/
 
https://docs.mongodb.com/manual/reference/operator/update-array/
 +
 +
== Curl ==
 +
Curl can be useful to test services as you create them.
 +
=== Create ===
 +
Create (POST /service) – creates a new document
 +
<source lang="bash">
 +
curl "http://localhost:3030/service" \
 +
-H "Content-Type: application/json" \
 +
--data-binary "{ 'email': 'feathers@example.com', 'password': 'secret' }";
 +
</source>
 +
=== Authenticate ===
 +
Create (POST /authentication) – authenticates a user
 +
<source lang="bash">
 +
curl "http://localhost:3030/authetication" \
 +
-H "Content-Type: application/json" \
 +
--data-binary "{ 'strategy': 'local', 'email': 'feathers@example.com', 'password': 'secret' }";
 +
</source>
 +
=== Find ===
 +
Find (GET /tasks) – finds all the documents matching the query (optional), also supports sorting and pagination
 +
<source lang="bash">
 +
curl "http://localhost:3030/service"
 +
</source>
 +
<source lang="bash">
 +
curl "http://localhost:3030/service" \
 +
-GET
 +
-H "Content-Type: application/json" \
 +
--data-binary '{ "someProperty": "someValue" }';
 +
</source>
 +
 
= Troubleshooting =
 
= Troubleshooting =
 
== Client Authentication ==
 
== Client Authentication ==
 
I had an issue where the client authenticated and I received the authentication token but when I use a service it says that I'm not authenticated.<br>
 
I had an issue where the client authenticated and I received the authentication token but when I use a service it says that I'm not authenticated.<br>
 
The solution was to ensure that the client setup the transport before the authentication.
 
The solution was to ensure that the client setup the transport before the authentication.

Revision as of 05:12, 13 August 2018

Feathers is a lightweight framework for setting up REST API's and realtime events.

Install

CLI

Install the cli to get started with you feathers application quickly.

npm install -g @feathersjs/cli

App

To get feathers to generate the app run:

feathers generate app

Authentication

To generate a authentication method use:

feathers generate authentication

Services

Services are a way to set up the REST API for a service like messages, users, channels, ect.

feathers generate service

Hooks

To generate a hook via the command line run:

feathers generate hook

Setup

TBC

Usage

Reverse Pagination

The best way that I have found to get the latest objects in the database is to use $sort like so:

app.service("messages").find({
	query: {
		$limit: 10,
		$sort: {
			createdAt: -1
		}
	}
}).then(res => {
	const latestData = res.data.reverse();
};

Manipulating MongoDB Arrays

https://docs.mongodb.com/manual/reference/operator/update-array/

Curl

Curl can be useful to test services as you create them.

Create

Create (POST /service) – creates a new document

curl "http://localhost:3030/service" \
	-H "Content-Type: application/json" \
	--data-binary "{ 'email': 'feathers@example.com', 'password': 'secret' }";

Authenticate

Create (POST /authentication) – authenticates a user

curl "http://localhost:3030/authetication" \
	-H "Content-Type: application/json" \
	--data-binary "{ 'strategy': 'local', 'email': 'feathers@example.com', 'password': 'secret' }";

Find

Find (GET /tasks) – finds all the documents matching the query (optional), also supports sorting and pagination

curl "http://localhost:3030/service"
curl "http://localhost:3030/service" \
	-GET
	-H "Content-Type: application/json" \
	--data-binary '{ "someProperty": "someValue" }';

Troubleshooting

Client Authentication

I had an issue where the client authenticated and I received the authentication token but when I use a service it says that I'm not authenticated.
The solution was to ensure that the client setup the transport before the authentication.