All Projects → synrc → Rest

synrc / Rest

Licence: other
☕ REST: Yoctoframework — https://rest.n2o.dev

Programming Languages

erlang
1774 projects

Projects that are alternatives of or similar to Rest

Restclient
🦄 Simple HTTP and REST client for Unity based on Promises, also supports Callbacks! 🎮
Stars: ✭ 675 (+850.7%)
Mutual labels:  rest, json
Rest Api Examples
Test and Prototype with Fake Online REST/OAuth 2 APIs Examples
Stars: ✭ 13 (-81.69%)
Mutual labels:  rest, json
Ky
🌳 Tiny & elegant JavaScript HTTP client based on the browser Fetch API
Stars: ✭ 7,047 (+9825.35%)
Mutual labels:  rest, json
Spyke
Interact with REST services in an ActiveRecord-like manner
Stars: ✭ 591 (+732.39%)
Mutual labels:  rest, json
Dito
Dito.js is a declarative and modern web framework with a focus on API driven development, based on Objection.js, Koa.js and Vue.js – Released in 2018 under the MIT license, with support by Lineto.com
Stars: ✭ 44 (-38.03%)
Mutual labels:  rest, json
Rest Assured
Java DSL for easy testing of REST services
Stars: ✭ 5,646 (+7852.11%)
Mutual labels:  rest, json
Ps Webapi
(Migrated from CodePlex) Let PowerShell Script serve or command-line process as WebAPI. PSWebApi is a simple library for building ASP.NET Web APIs (RESTful Services) by PowerShell Scripts or batch/executable files out of the box.
Stars: ✭ 24 (-66.2%)
Mutual labels:  rest, json
Zerocode
A community-developed, free, open source, microservices API automation and load testing framework built using JUnit core runners for Http REST, SOAP, Security, Database, Kafka and much more. Zerocode Open Source enables you to create, change, orchestrate and maintain your automated test cases declaratively with absolute ease.
Stars: ✭ 482 (+578.87%)
Mutual labels:  rest, json
Hyperpotamus
🥋 YAML/JSON automation scripting 🤺
Stars: ✭ 38 (-46.48%)
Mutual labels:  rest, json
Apicache
Simple API-caching middleware for Express/Node.
Stars: ✭ 957 (+1247.89%)
Mutual labels:  rest, json
Jikan
Unofficial MyAnimeList PHP+REST API which provides functions other than the official API
Stars: ✭ 531 (+647.89%)
Mutual labels:  rest, json
Flask Restx
Fork of Flask-RESTPlus: Fully featured framework for fast, easy and documented API development with Flask
Stars: ✭ 1,050 (+1378.87%)
Mutual labels:  rest, json
Pmhttp
Swift/Obj-C HTTP framework with a focus on REST and JSON
Stars: ✭ 509 (+616.9%)
Mutual labels:  rest, json
Kafka Pixy
gRPC/REST proxy for Kafka
Stars: ✭ 613 (+763.38%)
Mutual labels:  rest, json
Networking
⚡️ Elegantly connect to a REST JSON Api. URLSession + Combine + Decodable + Generics = <3
Stars: ✭ 499 (+602.82%)
Mutual labels:  rest, json
Droidparts
Stars: ✭ 785 (+1005.63%)
Mutual labels:  rest, json
Restc Cpp
Modern C++ REST Client library
Stars: ✭ 371 (+422.54%)
Mutual labels:  rest, json
Wiremock
A tool for mocking HTTP services
Stars: ✭ 4,790 (+6646.48%)
Mutual labels:  rest, json
Fastapi
FastAPI framework, high performance, easy to learn, fast to code, ready for production
Stars: ✭ 39,588 (+55657.75%)
Mutual labels:  rest, json
Generator Http Fake Backend
Yeoman generator for building a fake backend by providing the content of JSON files or JavaScript objects through configurable routes.
Stars: ✭ 49 (-30.99%)
Mutual labels:  rest, json

REST: framework with typed JSON

Actions Status Build Status Hex pm

Features and Goals

  • Fastest possibe Record <-> Proplists transformations
  • Smallest REST framework in the world
  • ETS/KVS/Any storage selection by scaffolding

We've achived first goal by providing parse_transform code generation for tuple transformations. And second requirement was achieved by not including routing bullshit and other uncertain features.

Usage

Just plug REST endpoint directly to your Cowboy router:

{"/rest/:resource", rest_cowboy, []},
{"/rest/:resource/:id", rest_cowboy, []},

Module

Sample REST service implementation:

-module(users).
-behaviour(rest).
-compile({parse_transform, rest}).
-include("users.hrl").
-export([init/0, populate/1, exists/1, get/0, get/1, post/1, delete/1]).
-rest_record(user).

init() -> ets:new(users, [public, named_table, {keypos, #user.id}]).
populate(Users) -> ets:insert(users, Users).
exists(Id) -> ets:member(users, wf:to_list(Id)).
get() -> ets:tab2list(users).
get(Id) -> [User] = ets:lookup(users, wf:to_list(Id)), User.
delete(Id) -> ets:delete(users, wf:to_list(Id)).
post(#user{} = User) -> ets:insert(users, User);
post(Data) -> post(from_json(Data, #user{})).

Usage

$ curl -i -X POST -d "id=vlad" localhost:8005/rest/users
$ curl -i -X POST -d "id=doxtop" localhost:8005/rest/users
$ curl -i -X GET localhost:8005/rest/users
$ curl -i -X PUT -d "id=5HT" localhost:8005/rest/users/vlad
$ curl -i -X GET localhost:8005/rest/users/5HT
$ curl -i -X DELETE localhost:8005/rest/users/5HT

Credits

  • Dmitry Bushmelev — ETS
  • Maxim Sokhatsky — KVS

OM A HUM

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].