|  | @@ -0,0 +1,52 @@
 | 
	
		
			
				|  |  | +# Elasticsearch REST API JSON specification
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +This repository contains a collection of JSON files which describe the [Elasticsearch](http://elasticsearch.org) HTTP API.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Their purpose is to formalize and standardize the API, to facilitate development of libraries and integrations.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Example for the ["Create Index"](http://www.elasticsearch.org/guide/reference/api/admin-indices-create-index/) API:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +```json
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +      "indices.create": {
 | 
	
		
			
				|  |  | +        "documentation": "http://elasticsearch.org/guide/reference/mapping/",
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        "methods": ["PUT", "POST"],
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        "url": {
 | 
	
		
			
				|  |  | +          "path": "/{index}",
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +          "paths": ["/{index}"],
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +          "parts": {
 | 
	
		
			
				|  |  | +            "index": {}
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +          "params": {
 | 
	
		
			
				|  |  | +            "index": {},
 | 
	
		
			
				|  |  | +            "timeout": {}
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        "body": {
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +```
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +The specification contains:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* The _name_ of the API (`indices.create`), which usually corresponds to the client calls
 | 
	
		
			
				|  |  | +* Link to the documentation at <http://elasticsearch.org>
 | 
	
		
			
				|  |  | +* List of HTTP methods for the endpoint
 | 
	
		
			
				|  |  | +* URL specification: path, parts, parameters
 | 
	
		
			
				|  |  | +* Whether body is allowed for the endpoint or not
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +The `methods` and `url.paths` elements list all possible HTTP methods and URLs for the endpoint;
 | 
	
		
			
				|  |  | +it is the responsibility of the developer to use this information for a sensible API on the target platform.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +The repository also contains a utility script in Ruby which will scan and parse the Elasticsearch source code
 | 
	
		
			
				|  |  | +to extract the information from the Java source files. Run `bundle install` and then `thor help api:generate:spec`.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +## License
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +This software is licensed under the Apache 2 license.
 |