API-STUDIO ( A Micro Service Framework )

  1. Start within 2 sec
    • working to get in to 1 sec
  2. Features
    • JAX-RS - jersey ( 90% )
    • WS - tyrus ( 40% )
    • Database - Cassandra ( 80% )
    • CDI - Weld ( 95% )
    • NIO Library - Grizzly ( 99% )
  3. All in one library
    • Cassandra For Database
    • Weld For CDI
    • Grizzly for tcp/http
    • Jersey for REST services

Sample Code

build.gradle ``` version ‘1.0-SNAPSHOT’

apply plugin: ‘java’

repositories { mavenCentral() jcenter() }

dependencies { compile ‘io.egreen.apistudio:bootstrap:0.0.8’ }

```

HelloWorldApp.java ``` @ApplicationPath(“/”) @MSApp(name = “rbr_device_app”) public class HelloWorldApp { public static void main(String[] args) { ApiStudio.boot(HelloWorldApp.class, “0.0.0.0”, 4545, “/api”); }

} ```

HelloApiSample.java ``` @Path(“/hello”) @Api(value = “pet”, authorizations = { @Authorization(value = “sampleoauth”, scopes = {}) }) public class HelloApiSample {

@Inject
private HelloService helloService;


@GET
@ApiOperation(
        value = "Finds Pets by status",
        notes = "Multiple status values can be provided with comma seperated strings",
        response = String.class,
        responseContainer = "List"
)
public String hello() {
    helloService.sayHello("dewmal");
    return "Hello Done";
}

} ```

HelloService.java

``` public interface HelloService { void sayHello(String name); }

```

.impl.HelloServiceImpl.java

``` @RequestScoped public class HelloServiceImpl implements HelloService { public void sayHello(String name) { System.out.println(name + “Hello world”); } }

```

USE HTML5 View in API-STUIO

@GET @ApiOperation( value = "Say Hello to Server", notes = "Hello Server with Test Server DI", response = String.class, responseContainer = "List" ) @RolesAllowed("ADMIN") @Produces(MediaType.TEXT_HTML) public Viewable hello() { helloService.sayHello("dewmal"); return new Viewable("../hello"); }

License

``` Copyright 2016 egreen

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

 http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ```