All Projects → LearningByExample → Reactive Ms Example

LearningByExample / Reactive Ms Example

Licence: mit
An educational project to learn reactive programming with Spring 5

Programming Languages

java
68154 projects - #9 most used programming language
flow
126 projects

Projects that are alternatives of or similar to Reactive Ms Example

KotlinReactiveMS
An educational project to learn reactive programming with Spring 5 and Kotlin
Stars: ✭ 33 (-78.98%)
Mutual labels:  reactive, reactive-streams, reactive-programming, reactor, api-rest, apis
assembler
Functional, type-safe, stateless reactive Java API for efficient implementation of the API Composition Pattern for querying/merging data from multiple datasources/services, with a specific focus on solving the N + 1 query problem
Stars: ✭ 102 (-35.03%)
Mutual labels:  reactive, reactive-streams, reactive-programming, reactor
Spring Cloud Gateway
A Gateway built on Spring Framework 5.x and Spring Boot 2.x providing routing and more.
Stars: ✭ 3,305 (+2005.1%)
Mutual labels:  microservices, reactor, spring-boot, spring
Spring Reactive Sample
Spring 5 Reactive playground
Stars: ✭ 867 (+452.23%)
Mutual labels:  reactive-streams, reactor, spring-boot, spring
Spring Webflux Reactive Rest Api Demo
Build Reactive Rest APIs with Spring WebFlux and Reactive Mongo
Stars: ✭ 117 (-25.48%)
Mutual labels:  reactive-programming, reactive-streams, reactor, spring-boot
Gemini
Model Driven REST framework to automatically generate CRUD APIs
Stars: ✭ 138 (-12.1%)
Mutual labels:  microservices, api-rest, spring-boot, spring
Reactive Spring Security 5 Workshop
Hands-On workshop for securing a reactive spring boot 2 application in multiple steps
Stars: ✭ 92 (-41.4%)
Mutual labels:  reactive-streams, spring-boot, spring
Whatsmars
Java生态研究(Spring Boot + Redis + Dubbo + RocketMQ + Elasticsearch)🔥🔥🔥🔥🔥
Stars: ✭ 1,389 (+784.71%)
Mutual labels:  microservices, spring-boot, spring
Jetlinks Community
JetLinks 基于Java8,Spring Boot 2.x ,WebFlux,Netty,Vert.x,Reactor等开发, 是一个全响应式的企业级物联网平台。支持统一物模型管理,多种设备,多种厂家,统一管理。统一设备连接管理,多协议适配(TCP,MQTT,UDP,CoAP,HTTP等),屏蔽网络编程复杂性,灵活接入不同厂家不同协议等设备。实时数据处理,设备告警,消息通知,数据转发。地理位置,数据可视化等。能帮助你快速建立物联网相关业务系统。
Stars: ✭ 2,405 (+1431.85%)
Mutual labels:  reactive-streams, reactor, spring-boot
Spring Cloud Example
Stars: ✭ 111 (-29.3%)
Mutual labels:  microservices, spring-boot, spring
Okta Blog Archive
Okta Developer Blog
Stars: ✭ 74 (-52.87%)
Mutual labels:  microservices, spring-boot, spring
Webfluxtemplate
Spring Webflux template application with working Spring Security, Web-sockets, Rest, Web MVC, and Authentication with JWT.
Stars: ✭ 107 (-31.85%)
Mutual labels:  reactive, spring-boot, spring
Spring Cloud Build
Common build concerns, shared plugin configuration, etc. for Spring Cloud modules
Stars: ✭ 114 (-27.39%)
Mutual labels:  microservices, spring-boot, spring
Spring 5 Examples
This repository is contains spring-boot 2 / spring framework 5 project examples. Using reactive programming model / paradigm and Kotlin
Stars: ✭ 87 (-44.59%)
Mutual labels:  reactive-programming, reactor, spring-boot
Spring Cloud Cloudfoundry
Integration between Cloudfoundry and the Spring Cloud APIs
Stars: ✭ 83 (-47.13%)
Mutual labels:  microservices, spring-boot, spring
Reactor Netty
TCP/HTTP/UDP/QUIC client/server with Reactor over Netty
Stars: ✭ 1,743 (+1010.19%)
Mutual labels:  reactive, reactive-streams, reactor
Hex Arch Kotlin Spring Boot
Reference JVM multi module project for a reactive micro service and lambda using a hexagonal architecture, DDD, Kotlin, Spring Boot, Quarkus, Lambda, Gradle.
Stars: ✭ 83 (-47.13%)
Mutual labels:  reactive, spring-boot, spring
Spring Cloud Sleuth
Distributed tracing for spring cloud
Stars: ✭ 1,531 (+875.16%)
Mutual labels:  microservices, spring-boot, spring
Rsocket Rpc Java
Standard RSocket RPC Java Implementation
Stars: ✭ 126 (-19.75%)
Mutual labels:  reactive, reactive-programming, reactive-streams
Spring Cloud Config
External configuration (server and client) for Spring Cloud
Stars: ✭ 1,740 (+1008.28%)
Mutual labels:  microservices, spring-boot, spring

Reactive Micro Services Example

License: MIT Build Status codecov codebeat badge

info

This is an example of doing reactive MicroServices using spring 5 functional web framework and spring boot 2.

There is a Kotlin fork of this service.

This service provide and API that will get the geo location and the sunrise and sunset times from an address.

Scenario: Get Location
  Given I've an address
  When I call the location service
  Then I should get a geo location
  And I should get the sunrise and sunset times

To implement this example we consume a couple of REST APIs.

This example cover several topics:

  • Functional programing.
  • Reactive types.
  • Router Functions.
  • Static Web-Content.
  • Creation on Reactive Java Services/Components.
  • Error handling in routes and services.
  • Reactive Web Client to consume external REST Services.
  • Organizing your project in manageable packaging.

Includes and in depth look to testing using JUnit5:

  • Unit, Integration and System tests.
  • Mocking, including reactive functions and JSON responses.
  • BDD style assertions.
  • Test tags with maven profiles.

usage

To run this service:

$ mvnw spring-boot:run

Sample requests

Get from address

$ curl -X GET "http://localhost:8080/api/location/Trafalgar%20Square%2C%20London%2C%20England" -H  "accept: application/json"

Post from JSON

$ curl -X POST "http://localhost:8080/api/location" -H  "accept: application/json" -H  "content-type: application/json" -d "{  \"address\": \"Trafalgar Square, London, England\"}"

Both will produce something like:

{
  "geographicCoordinates": {
    "latitude": 51.508039,
    "longitude": -0.128069
  },
  "sunriseSunset": {
    "sunrise": "2017-05-21T03:59:08+00:00",
    "sunset": "2017-05-21T19:55:11+00:00"
  }
}

All date and times are ISO 8601 UTC without summer time adjustment

API

View in the embedded Swagger UI View in the embedded Swagger UI

Run in Postman Run in Postman

Project Structure

References

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].