Announcing Microbuilder

182 views
Skip to first unread message

杨博

unread,
Mar 23, 2016, 1:24:41 AM3/23/16
to haxe...@googlegroups.com

Hi all,

I am proud to announce the availability of Microbuilder.

Microbuilder is a toolkit that helps you build system across micro-services implemented in various languages communicating via RESTful JSON API.

We, some people in ThoughtWorks Xi'an built Microbuilder.

How Microbuilder works

We designed a language to define RESTful JSON API, named MIDL (Microbuilder Interface Definition Language).

You can define data structures and endpoints in object-oriented syntax, with a few annotations like @:route.

@:final class UserProfile {
  public function new() {}
  public var name:String;
  public var email:String;
  public var address:String;
}

interface IUserService {
  @:route("GET", "users/{id}")
  function getUser(id:String):UserProfile;
}

You can perform following tasks around MIDL when building microservices:

  • As a service developer:
    • You can use MIDL to define their specific domain API.
    • You can generate API Documentation from MIDL.
    • You can generate server-side stubs from MIDL for target languages, then implement the RESTful service with the help of the stubs.
    • You can generate client-side SDK from MIDL for target languages, and publish the SDK.
  • As a service user:
    • You can use the client-side SDK in an application, in order to call the service in a RPC flavor.

Note that every task listed above is optional. For example, you may want to create MIDL to fit the current API of a legacy service, and generate client-side SDK and documentation for it, so that other applications will be easy to communicate with the legacy service. However, you will not generate server-side stubs because you already have a service implementation before.

Supported language

  • Client-side
    • Scala
    • JavaScript
    • Java
    • C#
    • PHP
    • C++
    • ActionScript 3 / Flash
    • NekoVM
    • Python
    • Haxe
  • Server-side
    • Scala
    • Any of your own existing JSON Web API
  • Format of Documentation
    • Swagger
    • Haxedoc

Links

See the following links for a brief view of Microbuilder:

You can ask any question in Gitter chat room:

Also, Microbuilder is separated into several libraries, each library has its own documentation and distribution.

json-stream-core

Universal Serialization Framework for JSON

microbuilder-core

Microbuilder runtime and tools for all languages

microbuilder-js

Microbuilder runtime for JavaScript

microbuilder-play

Microbuilder runtime for Scala and Play framework

--
杨博 (Yang Bo)
Reply all
Reply to author
Forward
0 new messages