Socorro:ElasticSearch API: Difference between revisions

Page moved.
(Page moved.)
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
= Middleware API for ElasticSearch =
This page was moved to [[Socorro/ElasticSearch_API]]
 
'''This is a draft''' of the new API for querying ElasticSearch through the middleware API of Socorro.
 
The Middleware API aims to separate the front-end from the back-end by providing an interface to access the data. By doing so, the front-end will not have to care about the storage system, and will retrieve data from Hbase, PostgreSQL or ElasticSearch in a consistent and simple way, through our REST API.
 
The API is separated in several categories / entry points:
* /query
* /search
* /report
* /crash
* /stats
 
This categories are explained below.
 
== Query ==
 
=== Description ===
 
Low level query, just sends a JSON query to ES directly, and returns the result of this query.
 
=== API Spec ===
 
HTTP request: '''POST'''<br>
Data: JSON query to send to ElasticSearch<br>
URI: '''/query/[(''types'')/]'''
 
* ''types'': Types of data we are looking into. If omitted, default value is _all. Several types can be specified, separated by a + symbol.
 
== Search ==
 
=== Description ===
 
Searches for some terms in ES.
 
=== API Spec ===
 
HTTP request: '''GET'''<br>
URI: '''/search/(''types'')/for/(''terms'')/in/(''fields'')/product/(''product'')/version/(''version'')/os/(''os_name'')/from/(''from_date'')/to/(''to_date'')/'''
 
* ''types'': Type of data we are looking into. Can be set to _all to search into all types. Several types can be specified, separated by a + symbol.
* ''terms'': Terms we are search for. Each term must be URL encoded. Several terms can be specified, separated by a + symbol.
* ''fields'': Fields we are searching in. Several fields can be specified, separated by a + symbol.
* ''product'': The product we are interested in. (e.g. Firefox, Fennec, Thunderbird... )
* ''version'': Version of the product. Can be set to _all to search into all versions.
* ''os_name'': Name of the Operating System. (e.g. Windows, Mac, Linux... )
* ''from_date'': Search for crashes that happened after this date.
* ''to_date'': Search for crashes that happened before this date.
 
 
== Report ==
 
=== Description ===
 
Get a specific report.
 
=== API Spec ===
 
HTTP request: '''GET'''<br>
URI: '''/report/...'''
 
 
== Crash ==
 
=== Description ===
 
Searches a crash by it's OOID and returns it. This query is not supposed to use ES but HBase directly.
 
=== API Spec ===
 
HTTP request: '''GET'''<br>
URI: '''/crash/(''crash_id'')'''
 
* ''crash_id'': Unique identifier of the crash to retrieve.
Confirmed users
245

edits