Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

WSO2Con EU 2016: Creating Data APIs with WSO2 Data Integration Server

458 views

Published on

Data is at the heart of any business. Before exposing its valuable assets as APIs, there needs to be an efficient approach to bring this data to the API layer. One of the most convenient ways of doing this is to use data services. By using data services, you can model a virtualized view of the data to be consumed in an intuitive manner.

This session will explore the upcoming WSO2 Data Integration Server, which is an upgrade of the current WSO2 Data Service Server. It will examine its key features such as its out-of-the-box support for ETL (extract, transform and load). The WSO2 Data Integration Server can now expose anything from CRUD (create, read, update and delete) operations to complex ETL processes as data APIs in no time.

Published in: Technology
  • Be the first to comment

WSO2Con EU 2016: Creating Data APIs with WSO2 Data Integration Server

  1. 1. source: www.cx-journey.com
  2. 2. • • •
  3. 3. • • • • • •
  4. 4. • • • • •
  5. 5. { "employees": { "employee": [ { "lastName": "Patterson", "salary": 2000, "firstName": "Mary" } ] } }
  6. 6. • – – – –
  7. 7. • • • • •
  8. 8. @startuml IntegrationFlow : DISWorkflow participant inboundendpointListener : InboundEndpoint(protocol("http"),port(8082),context("/disworkflow")) participant pipeline : Pipeline("dis_workflow") participant datasource : OutboundDataSource(protocol("rdbms"),host("jdbc:mysql://localhost:3306/DISTEST"), username("root"),password("root")) inboundendpointListener -> pipeline : "Request" log("Before Select") pipeline -> datasource : query(statement("SELECT * FROM Employee"),resultset(rs)) datasource -> pipeline log("After Select") pipeline -> inboundendpointListener : "Response" @enduml
  9. 9. @startuml IntegrationFlow : DISWorkflow participant inboundListener : InboundEndpoint(protocol("http"),port(8082),context("/disworkflow")) participant pipeline : Pipeline("dis_workflow") participant datasource : OutboundDataSource(protocol("rdbms"),host("jdbc:mysql://localhost:3306/DISTEST"),username("root"),password("root")) inboundListener -> pipeline : "Request" log("Before Insert") group transaction pipeline -> datasource : query(statement("INSERT INTO Location(City,Country) VALUES(?,?)"),parameter($in.City,$in.Country),resultset(rs)) datasource -> pipeline pipeline -> datasource : query(statement("INSERT INTO Employee(Name,CityID) VALUES(?,?)"),parameter($in.Name,$rs.id)) datasource -> pipeline else log("Transaction Error - Rolled back") end log("After Insert") pipeline -> datasource : query(statement("SELECT * FROM Employee")) datasource -> pipeline pipeline -> inboundListener : "Response" @enduml
  10. 10. @startuml IntegrationFlow : DISWorkflow participant inboundListener : InboundEndpoint(protocol("http"),port(8082),context("/disworkflow")) participant pipeline : Pipeline("dis_workflow") participant datasource : OutboundDataSource(protocol("rdbms"),host("jdbc:mysql://localhost:3306/DISTEST"),username("root"),password("root")) inboundListener -> pipeline : "Request" group Transaction log("Within Transaction") loop $in.cities pipeline -> datasource : query(statement("INSERT INTO Location(City, Country) VALUES(?,?)"),parameter($cities.City,$cities.Country),resultset(rs0)) datasource -> pipeline loop $cities.employees pipeline -> datasource : query(statement("INSERT INTO Employee(Name,CityID) VALUES(?,?)"),parameter($employees.Name,$rs0.id)) datasource -> pipeline end end else log("Error Sequence") end log("Before Select") pipeline -> datasource : query(statement("SELECT * FROM Employee"),resultset(rs2)) datasource -> pipeline log("After Select") pipeline -> inboundListener : "Response" @enduml
  11. 11. @startuml IntegrationFlow : DIS_Insert participant inboundListener : InboundEndpoint(protocol("http"),port(8080),context("/insertemployee")) participant pipeline : Pipeline("dis_flow") participant datasource1 : OutboundDataSource(protocol("rdbms"),host("jdbc:mysql://localhost:3306/mysqltestdb"),username("root"),password("root")) participant datasource2 : OutboundDataSource(protocol("rdbms"),host("jdbc:oracle:thin:@//localhost:1522/oracletestdb"),username("root"),password("root")) inboundListener -> pipeline : "Request" log("Before Insert") pipeline -> datasource1 : query(statement("INSERT INTO Location(City, Country) VALUES(?,?)"),parameter($in.CityName,$in.Country)) datasource1 -> pipeline pipeline -> datasource2 : query(statement("INSERT INTO Employee(Id, Role) VALUE(?,?)"),parameter($in.Id,$in.Role)) datasource2 -> pipeline log("After Insert") pipeline -> datasource1 : query(statement("SELECT * FROM Location")) datasource1 -> pipeline pipeline -> inboundListener : "Response" @enduml
  12. 12. • • – •

×