Skip to content

dgtlmobility/airberlin_lab_2016

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 

Repository files navigation

airberlin_lab_2016

Official Support Repo with Docs, FAQs and Issues around the airberlin Lab 2016 powered by XapiX.io

This site is for all kind of questions and feedback around the online hackathon to be found on devpost and all other aspects of the underlying innovation program.

Prototype your value proposition towards airberlin's network of 30 million customers worldwide. Use airberlin's Lab to recombine data/services into customer-centric APP's. Design your APP's to meet real needs, solve painpoints and lower friction.

Use the for external developers usually locked up airberlin API (SOAP, RPC) the most comfortable way through XapiX.io (REST, Hypermedia) with preconfigured authentication. Just fill out a one step wizard and all available resources will be imported for you to start hacking! Use Swagger UI or our very own Web Console to right away peak into data and build awesome projects.

airberlin Booking Flow

  1. Index Availabilities filtered by departure, destination, date and passengers
  2. Booking
  3. Step by step noting down IDs - Create Booked Flight Segments - Create Passengers - Create Customer Address - Create Credit Card - Create Booking, providing all previous resource IDs
  4. Transactionally create Booking, providing: - Booked Flight Segments - Passengers - Customer Address - Credit Card

airberlin other resources

On XapiX platform:

  1. Create / Model a Resource Class as YOU need it for your application
  2. Use Mocking feature to generate data for your Resource Class
  3. Program against this data structure. We'll see and give you credit in judging!
  4. Tell us! File an Issue or use Feedback feature in top right corner in the XapiX platform

We will discuss your suggestion with airberlin as soon as possible and may provide you a real endpoint with real data from airberlin systems. This is the feedback cycle between developers and API maintainers we aim to embrace.

XapiX.io

XapiX.io is a platform to build adapters to APIs or any other web interface. We normalize every kind of data source to a RESTful hypermedia format with all common features. For your convenience, we: manage authentication, minimize complexity resulting from heterogenousity, provide easy going mockup feature, provide direct feedback channel to provider API architects.

XapiX.io 101

When signed in, find the educational mode switch in the upper right corner. Turning this one will show all available documentation info panels in place. Just try it!

Annotated videos for most common workflows are provided on our YouTube channel

Theres is also a XapiX.io BETA themed Wiki at a seperate GitHub Repo. It is frequentlyy updated, but usually a bit behind.

XapiX.io Terminology

(influenced by json:api and RESTful API terminology)

Default across entire platform is snake case. Better support for camel case is in progress.

"Resources" within this document refers to XapiX’ main resources:

  • "Web Interfaces"
  • "Resource Class"
  • "Mappings"
  • "Microservices"

"XapiX Platform":

  • "Resource Management"
    • GUI: XapiX Web GUI
    • API: Partner Company and Developer interface
  • “Data Delivery API”
    • Runs all Client APIs

"Client API":

  • bound to one "Project" and associated resources
  • resulting REST interface according to "Resource Classes" configuration
  • content and services according to Web Interfaces and Mappings

"Project":

  • manage Users, resources, plan, "Client API" access + authentication
  • when a User creates a "Project" it is an "owning Project"
  • every created resource belongs to one "owning Project"
  • only within their "owning Project" resources can be updated, deleted
  • every "Project" by default is private, but can be made publicly importable
  • if an "owning Project" is not publicly importable:
    • all resources have just one "consuming Project" that is the "owning Project"
  • else if an "owning Project" is publicly importable:
    • all resources have many "consuming Projects"
    • all "consuming Projects" may consume all of the "owning Project's" resources

“Web Interfaces”:

  • "Web Data Source" (formerly Input Endpoint)
    • Examples:
      • 3rd party API endpoint
      • cloud data base
      • publicly accessible file on the web
      • private file uploaded to XapiX stored on S3
    • data types: JSON, XML, CSV, SOAP service, DB table or view, etc.
    • config fields to retrieve a collection of data records / a single data record
    • fetches a "data sample" when saved with valid configuration
    • "Web Data Target" - soon to come

"Resource Class" (formerly Output Endpoint)

  • has 1 to 5 "Actions" out of:
    • "index" retrieves a (filtered, paginated) collection of "Resource Objects"
    • "show" retrieves a single "Resource Object" by it's ID
    • "create" takes a single "Resource Object"
    • "update" takes a single modified "Resource Object" to replace the one with the given ID
    • "delete" a single "Resource Object" by it's ID
  • has 1..n attributes of plain data types (string, integer, boolean, nil)
  • has 0..n "Resource Relationships"
    • "to_one" aka "belongs_to" says one "Resource Object" of this kind is related / belongs to one other "Resource Object"
    • "to_many" says one "Resource Object" of this kind is related to many other "Resource Objects". Or many other "Resource Objects" belong to one "Resource Object" of this kind.
  • has 0..n "Sub Structures"
    • nested record collections in a "Web Data Source's" response
    • treated mostly like "Resource Relationships" only they are passed through without changes, so they are not of a "Resource Class" and violate "json:api"

"Mappings":

  • "Source Mapping" (formerly Endpoint Mapping)
    • has 1 "Web Data Source" as mapping source. Keys of "data sample" are mappable items
    • has 1 "Resource Class" as mapping target. Attributes are mappable items
    • 0..n "data sample" keys may be mapped into one attribute. “Mapping formula” in a domain specific language (DSL) is attached to do data transformations
  • "Target Mapping"
    • has 1 "Web Data Target" as mapping target. Parameters are mappable items
    • has 1 "Resource Class" as mapping target. Attributes are mappable items
    • “Mapping formula” on the ”Web Data Target”

"Microservice”:

  • Code function for side effects executing logic remotely
  • Bound to 0..n “Resource Class” “Actions”
  • Examples:
    • Synchronize 3rd party API
    • Send an email

About

Official Support Repo with Docs, FAQs and Issues for Air Berlin Lab 2016 powered by XapiX.io

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published