Browse Source

upd readme

221V 1 year ago
parent
commit
ffec7c9f30
1 changed files with 39 additions and 13 deletions
  1. 39 13
      README.md

+ 39 - 13
README.md

@@ -11,6 +11,13 @@ Just plug REST endpoint directly to your Cowboy router:
 {"/rest/:resource/:id", rest_cowboy, []},
 {"/rest/:resource/:id", rest_cowboy, []},
 ```
 ```
 
 
+Emakefile
+```
+{["deps/jsone/src/*"], [{outdir, "deps/ebin"}]}.
+
+{["deps/rest/src/rest.erl", "deps/rest/src/*"], [{outdir, "deps/ebin"}]}.
+```
+
 Module
 Module
 ------
 ------
 
 
@@ -19,31 +26,50 @@ Sample REST service implementation:
 ```erlang
 ```erlang
 -module(rest_users).
 -module(rest_users).
 -compile({parse_transform, rest}).
 -compile({parse_transform, rest}).
+
 -export([init/0, populate/1, new/0, exists/1, get/0, get/1, post/1, delete/1]).
 -export([init/0, populate/1, new/0, exists/1, get/0, get/1, post/1, delete/1]).
+-export([keys_allowed/1]).
+
 
 
 -record(user, {id, cn, name, type}).
 -record(user, {id, cn, name, type}).
 -rest_record(user).
 -rest_record(user).
 
 
+keys_allowed(Keys) ->
+  Allow = [<<"id">>, <<"test">>],
+  lists:all(fun(X) ->
+    lists:member(X, Allow)
+  end, Keys).
+
 new()                -> #user{}.
 new()                -> #user{}.
-init()               -> ets:new(users, [public, named_table, {keypos, #user.id}]).
-populate(Users)      -> ets:insert(users, Users).
-exists(Id)           -> X = ets:member(users, erlang:binary_to_list(Id)), io:format("Member: ~p~n", [X]), X.
-get()                -> ets:tab2list(users).
-get(Id)              -> [U] = ets:lookup(users, erlang:binary_to_list(Id)), io:format("User: ~p~n", [U]), U.
-delete(Id)           -> ets:delete(users, erlang:binary_to_list(Id)).
-post(#user{} = User) -> ets:insert(users, User);
+init()               -> ets:new(rest_users, [public, named_table, {keypos, #user.id}]).
+populate(Users)      -> ets:insert(rest_users, Users).
+
+exists(Id)           ->
+  X = ets:member(rest_users, erlang:binary_to_list(Id)),
+  io:format("Member: ~p~n", [X]),
+  X.
+
+get()                -> ets:tab2list(rest_users).
+
+get(Id)              ->
+  [U] = ets:lookup(rest_users, erlang:binary_to_list(Id)),
+  io:format("User: ~p~n", [U]),
+  U.
+
+delete(Id)           -> ets:delete(rest_users, erlang:binary_to_list(Id)).
+post(#user{} = User) -> ets:insert(rest_users, User);
 post(Data)           -> post(from_json(Data, #user{})).
 post(Data)           -> post(from_json(Data, #user{})).
 ```
 ```
 
 
 Usage
 Usage
 -----
 -----
 ```
 ```
-curl -i -X POST -d "id=vlad" localhost:8000/rest/users
-curl -i -X POST -d "id=doxtop" localhost:8000/rest/users
-curl -i -X GET localhost:8000/rest/users
-curl -i -X PUT -d "id=5HT" localhost:8000/rest/users/vlad
-curl -i -X GET localhost:8000/rest/users/5HT
-curl -i -X DELETE localhost:8000/rest/users/5HT
+curl -i -X POST -d "id=vlad" localhost:4000/rest/rest_users
+curl -i -X POST -d "id=doxtop" localhost:4000/rest/rest_users
+curl -i -X GET localhost:4000/rest/rest_users
+curl -i -X PUT -d "id=5HT" localhost:4000/rest/rest_users/vlad
+curl -i -X GET localhost:4000/rest/rest_users/5HT
+curl -i -X DELETE localhost:4000/rest/rest_users/5HT
 ```
 ```
 
 
 Credits
 Credits