github.com/vmpartner/bitmex@v1.1.0/swagger/order_book_api.go (about) 1 /* 2 * BitMEX API 3 * 4 * ## REST API for the BitMEX Trading Platform [View Changelog](/app/apiChangelog) #### Getting Started ##### Fetching Data All REST endpoints are documented below. You can try out any query right from this interface. Most table queries accept `count`, `start`, and `reverse` params. Set `reverse=true` to get rows newest-first. Additional documentation regarding filters, timestamps, and authentication is available in [the main API documentation](https://www.bitmex.com/app/restAPI). *All* table data is available via the [Websocket](/app/wsAPI). We highly recommend using the socket if you want to have the quickest possible data without being subject to ratelimits. ##### Return Types By default, all data is returned as JSON. Send `?_format=csv` to get CSV data or `?_format=xml` to get XML data. ##### Trade Data Queries *This is only a small subset of what is available, to get you started.* Fill in the parameters and click the `Try it out!` button to try any of these queries. * [Pricing Data](#!/Quote/Quote_get) * [Trade Data](#!/Trade/Trade_get) * [OrderBook Data](#!/OrderBook/OrderBook_getL2) * [Settlement Data](#!/Settlement/Settlement_get) * [Exchange Statistics](#!/Stats/Stats_history) Every function of the BitMEX.com platform is exposed here and documented. Many more functions are available. ##### Swagger Specification [⇩ Download Swagger JSON](swagger.json) ## All API Endpoints Click to expand a section. 5 * 6 * OpenAPI spec version: 1.2.0 7 * Contact: support@bitmex.com 8 * Generated by: https://github.com/swagger-api/swagger-codegen.git 9 */ 10 11 package swagger 12 13 import ( 14 "net/url" 15 "net/http" 16 "strings" 17 "golang.org/x/net/context" 18 "encoding/json" 19 ) 20 21 // Linger please 22 var ( 23 _ context.Context 24 ) 25 26 type OrderBookApiService service 27 28 /* OrderBookApiService Get current orderbook [deprecated, use /orderBook/L2]. 29 30 @param symbol Instrument symbol. Send a series (e.g. XBT) to get data for the nearest contract in that series. 31 @param optional (nil or map[string]interface{}) with one or more of: 32 @param "depth" (float32) Orderbook depth. 33 @return []OrderBook*/ 34 func (a *OrderBookApiService) OrderBookGet(symbol string, localVarOptionals map[string]interface{}) ([]OrderBook, *http.Response, error) { 35 var ( 36 localVarHttpMethod = strings.ToUpper("Get") 37 localVarPostBody interface{} 38 localVarFileName string 39 localVarFileBytes []byte 40 successPayload []OrderBook 41 ) 42 43 // create path and map variables 44 localVarPath := a.client.cfg.BasePath + "/orderBook" 45 46 localVarHeaderParams := make(map[string]string) 47 localVarQueryParams := url.Values{} 48 localVarFormParams := url.Values{} 49 50 if err := typeCheckParameter(localVarOptionals["depth"], "float32", "depth"); err != nil { 51 return successPayload, nil, err 52 } 53 54 localVarQueryParams.Add("symbol", parameterToString(symbol, "")) 55 if localVarTempParam, localVarOk := localVarOptionals["depth"].(float32); localVarOk { 56 localVarQueryParams.Add("depth", parameterToString(localVarTempParam, "")) 57 } 58 // to determine the Content-Type header 59 localVarHttpContentTypes := []string{"application/json", "application/x-www-form-urlencoded",} 60 61 // set Content-Type header 62 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 63 if localVarHttpContentType != "" { 64 localVarHeaderParams["Content-Type"] = localVarHttpContentType 65 } 66 67 // to determine the Accept header 68 localVarHttpHeaderAccepts := []string{ 69 "application/json", 70 "application/xml", 71 "text/xml", 72 "application/javascript", 73 "text/javascript", 74 } 75 76 // set Accept header 77 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 78 if localVarHttpHeaderAccept != "" { 79 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 80 } 81 r, err := a.client.prepareRequest(nil, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) 82 if err != nil { 83 return successPayload, nil, err 84 } 85 86 localVarHttpResponse, err := a.client.callAPI(r) 87 if err != nil || localVarHttpResponse == nil { 88 return successPayload, localVarHttpResponse, err 89 } 90 defer localVarHttpResponse.Body.Close() 91 if localVarHttpResponse.StatusCode >= 300 { 92 return successPayload, localVarHttpResponse, reportError(localVarHttpResponse.Status) 93 } 94 95 if err = json.NewDecoder(localVarHttpResponse.Body).Decode(&successPayload); err != nil { 96 return successPayload, localVarHttpResponse, err 97 } 98 99 return successPayload, localVarHttpResponse, err 100 } 101 102 /* OrderBookApiService Get current orderbook in vertical format. 103 104 @param symbol Instrument symbol. Send a series (e.g. XBT) to get data for the nearest contract in that series. 105 @param optional (nil or map[string]interface{}) with one or more of: 106 @param "depth" (float32) Orderbook depth per side. Send 0 for full depth. 107 @return []OrderBookL2*/ 108 func (a *OrderBookApiService) OrderBookGetL2(symbol string, localVarOptionals map[string]interface{}) ([]OrderBookL2, *http.Response, error) { 109 var ( 110 localVarHttpMethod = strings.ToUpper("Get") 111 localVarPostBody interface{} 112 localVarFileName string 113 localVarFileBytes []byte 114 successPayload []OrderBookL2 115 ) 116 117 // create path and map variables 118 localVarPath := a.client.cfg.BasePath + "/orderBook/L2" 119 120 localVarHeaderParams := make(map[string]string) 121 localVarQueryParams := url.Values{} 122 localVarFormParams := url.Values{} 123 124 if err := typeCheckParameter(localVarOptionals["depth"], "float32", "depth"); err != nil { 125 return successPayload, nil, err 126 } 127 128 localVarQueryParams.Add("symbol", parameterToString(symbol, "")) 129 if localVarTempParam, localVarOk := localVarOptionals["depth"].(float32); localVarOk { 130 localVarQueryParams.Add("depth", parameterToString(localVarTempParam, "")) 131 } 132 // to determine the Content-Type header 133 localVarHttpContentTypes := []string{"application/json", "application/x-www-form-urlencoded",} 134 135 // set Content-Type header 136 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 137 if localVarHttpContentType != "" { 138 localVarHeaderParams["Content-Type"] = localVarHttpContentType 139 } 140 141 // to determine the Accept header 142 localVarHttpHeaderAccepts := []string{ 143 "application/json", 144 "application/xml", 145 "text/xml", 146 "application/javascript", 147 "text/javascript", 148 } 149 150 // set Accept header 151 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 152 if localVarHttpHeaderAccept != "" { 153 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 154 } 155 r, err := a.client.prepareRequest(nil, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) 156 if err != nil { 157 return successPayload, nil, err 158 } 159 160 localVarHttpResponse, err := a.client.callAPI(r) 161 if err != nil || localVarHttpResponse == nil { 162 return successPayload, localVarHttpResponse, err 163 } 164 defer localVarHttpResponse.Body.Close() 165 if localVarHttpResponse.StatusCode >= 300 { 166 return successPayload, localVarHttpResponse, reportError(localVarHttpResponse.Status) 167 } 168 169 if err = json.NewDecoder(localVarHttpResponse.Body).Decode(&successPayload); err != nil { 170 return successPayload, localVarHttpResponse, err 171 } 172 173 return successPayload, localVarHttpResponse, err 174 }