+++
# -----------------------------------------------------------------------
# Do not edit this file. It is automatically generated by API Documenter.
# -----------------------------------------------------------------------
title = "DataSourceWithBackend"
keywords = ["grafana","documentation","sdk","@grafana/runtime"]
type = "docs"
draft = true
+++

## DataSourceWithBackend class

<b>Signature</b>

```typescript
export declare class DataSourceWithBackend<TQuery extends DataQuery = DataQuery, TOptions extends DataSourceJsonData = DataSourceJsonData> extends DataSourceApi<TQuery, TOptions> 
```
<b>Import</b>

```typescript
import { DataSourceWithBackend } from '@grafana/runtime';
```
<b>Constructors</b>

|  Constructor | Modifiers | Description |
|  --- | --- | --- |
|  [constructor(instanceSettings)](#constructor-instancesettings) |  | Constructs a new instance of the <code>DataSourceWithBackend</code> class |

<b>Methods</b>

|  Method | Modifiers | Description |
|  --- | --- | --- |
|  [query(request)](#query-method) |  | Ideally final -- any other implementation would be wrong! |
|  [testDatasource()](#testdatasource-method) |  |  |
|  [toDataQueryResponse(rsp)](#todataqueryresponse-method) |  | This makes the arrow library loading async. |

### constructor(instanceSettings)

Constructs a new instance of the `DataSourceWithBackend` class

<b>Signature</b>

```typescript
constructor(instanceSettings: DataSourceInstanceSettings<TOptions>);
```
<b>Parameters</b>

|  Parameter | Type | Description |
|  --- | --- | --- |
|  instanceSettings | <code>DataSourceInstanceSettings&lt;TOptions&gt;</code> |  |

### query method

Ideally final -- any other implementation would be wrong!

<b>Signature</b>

```typescript
query(request: DataQueryRequest): Observable<DataQueryResponse>;
```
<b>Parameters</b>

|  Parameter | Type | Description |
|  --- | --- | --- |
|  request | <code>DataQueryRequest</code> |  |

<b>Returns:</b>

`Observable<DataQueryResponse>`

### testDatasource method

<b>Signature</b>

```typescript
testDatasource(): Promise<{}>;
```
<b>Returns:</b>

`Promise<{}>`

### toDataQueryResponse method

This makes the arrow library loading async.

<b>Signature</b>

```typescript
toDataQueryResponse(rsp: any): Promise<DataQueryResponse>;
```
<b>Parameters</b>

|  Parameter | Type | Description |
|  --- | --- | --- |
|  rsp | <code>any</code> |  |

<b>Returns:</b>

`Promise<DataQueryResponse>`

