Analysis REST API Contracts

From Yocto Project
Revision as of 16:47, 14 August 2013 by Ddalex (talk | contribs)
Jump to navigationJump to search


WebHob is accessible through REST APIs, which make the backend available to any client. The data collected during the build is available on no-restrictions, anonymous, read-only API running on the local host machine.

General

The interface to retrieve objects is available as a search query returning a list of typed objects. The request method must be GET. The answers are always returned as JSON.

API version

The REST API is versioned as to allow further upgrades without having to maintain backward compatibility through changing the major version number. Minor version numbers are inteded to signify a capability level while maintaining compatibility.

This is the API version 1.0. All API requests are grouped under URL: api/1.0/

Object types

The API can return REST API Contracts#Build, REST API Contracts#Task, REST API Contracts#Package, REST API Contracts#Layer, REST API Contracts#Layerversion, REST API Contracts#Recipe, REST API Contracts#Variable. Each object is described below.

Search query

The primary operation of the API is to retrieve a set of objects from the backend based on a search operation. The result will also contain all the data for the objects being returned, as to avoid separate connections to further bring the data.


Build

Endpoints

Method Endpoint Body Description Comments
GET /builds JSON Returns page size limited and search criteria filtered amount of builds from the data base -

Parameters

Name Type Description Comments
limit number The amout of builds to be displayed in one page -
offset number Represents the position of the first record in the page If limit is 1, end point will target the findOne functionality and the offset will act as the actual build id
search string Search string for all fields The only argument is the string searched in the database.
filter string Consists of a string used to filter results The general form: "<FIELD>:<VALUE>".
orderby string the name of the field that determens the soring of the resuls. "<FIELD>:<ORDER_DIRECTION>"

Response

Name Type Dimension Required Default value(s) Description Comments
[Object Root] object - YES - - -
[Object Root].count number - YES - Total amount of builds to be displayed (according to filter parameter) -
[Object Root].list object array - YES - - To describe a generic object element of the array,
the refference to it's root is "list[]"
[Object Root].list[].pk number - YES - - -
[Object Root].list[].model string - YES - - -
[Object Root].list[].fields object - YES - - -
[Object Root].list[].fields.outcome number 2 YES - Signals successful or failed build 0 - the build has failed,
1 - successful build
[Object Root].list[].fields.target string - YES - The name of the build target(s) -
[Object Root].list[].fields.machine string array - YES - The selected hardware -
[Object Root].list[].fields.started_on number representation of date - YES - Marks the moment the process is started -
[Object Root].list[].fields.completed_on number representation of date - YES - Marks the moment the process is completed -
[Object Root].list[].fields.errors_no number - YES - Number of errors thrown by the build -
[Object Root].list[].fields.warnings_no number - YES - Number of warnings thrown by the build -
[Object Root].list[].fields.cooker_log_path string - YES - Path to log file -
[Object Root].list[].fields.image_fstypes string array - YES - The extensions of the root file systems produced by the build -