Code Monkey home page Code Monkey logo

brutusin-rpc's Introduction

Brutusin-RPC Hex.pm Build Status Maven Central Latest Version

Brutusin-RPC shiny logo

JEE web framework for creating self-descriptive JSON-RPC microservices and single-page applications with minimal effort.

Features

  • JSON-RPC 2.0 over HTTP
  • JSON-RPC 2.0 over websockets
  • Messaging (publish/subscribe) over websockets
  • Java & Javascript client API
  • Builtin descriptive services and functional testing module
  • Arbitrary complex input and output description based on JSON Schema
  • Spring-security integration
  • Embedded server runtimes

Full Documentation

See the Wiki for full documentation, examples, operational details and other information.

Quick start. Code and test!

Run this java application:

import org.brutusin.rpc.Server;
import org.brutusin.rpc.websocket.WebsocketAction;

public class HelloAction extends WebsocketAction<String, String> {

    @Override
    public String execute(String input) throws Exception {
        return "Hello " + input + "!";
    }

    public static void main(String[] args) throws Exception {
        Server.test(new HelloAction());
    }
}

and automatically your browser will be open with a functional testing client for the newly created service:

Service testing client

Live demos

Support, bugs and requests

https://github.com/brutusin/Brutusin-RPC/issues

Authors

Contributions are always welcome and greatly appreciated! Just fork, and send me a pull request.

License

Apache License, Version 2.0 http://www.apache.org/licenses/LICENSE-2.0

brutusin-rpc's People

Contributors

idelvall avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

brutusin-rpc's Issues

functional test module

When resolving schemas via websockets, if there connection is closed, reload the page

Support different programming models

Current service implementation is based on strategy pattern extending different framework base action classes.
It would be great to support other programming models that allow to instantiate services by other means (for example annotated methods in a class)

Suggested by @bessemHmidi

Validation is not working if form is not filled

Hi ,
I am using brutusin:json-forms in my project to create form dynamically. But I have found one issue with validation. If form is empty then validation is not working for below json
JSON Data=>
{
"title": "Person",
"type": "object",
"properties": {
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"age": {
"description": "Age in years",
"type": "integer",
"minimum": 0
}
},
"required": ["firstName", "lastName"]
}

Please help me to fix this issue.

no id in rpc response

Hi,

I am testing a simple use case and have found no "id" field in my response !
Am I doing something incorrect in my implementation ?

Thanks

Help! Exception while running as Jar

Exception sending context initialized event to listener instance of class org.brutusin.rpc.RpcInitListener
java.lang.NullPointerException
at org.brutusin.rpc.RpcInitListener.initWebsocketRpcRuntime(RpcInitListener.java:75)
at org.brutusin.rpc.RpcInitListener.contextInitialized(RpcInitListener.java:44)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4738)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5181)

OpenRPC Integration

First of all, wicked project. Great to see others are building nice tools for JSON-RPC.

I was wondering if you've given any thought to integrating OpenRPC into brutusin-rpc? There is certainly a lot of ways in which they could benefit each other. https://open-rpc.org is the website for it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.