@odata2ts/http-client-api
Version:
Specifies the contract between HTTP clients and odata2ts
73 lines (72 loc) • 2.68 kB
TypeScript
import { ODataResponse } from "./ODataResponseModel";
/**
* Retrieves the configuration type for the given HTTP client.
*/
export type ODataHttpClientConfig<ClientType extends ODataHttpClient> = ClientType extends ODataHttpClient<infer Config> ? Config : never;
export interface ODataHttpClient<RequestConfig = any> {
/**
* Create a model or collection entry.
*
* @param url
* @param data
* @param requestConfig
* @param additionalHeaders
*/
post<ResponseModel>(url: string, data: any, requestConfig?: RequestConfig, additionalHeaders?: Record<string, string>): ODataResponse<ResponseModel>;
get<ResponseModel>(url: string, requestConfig?: RequestConfig, additionalHeaders?: Record<string, string>): ODataResponse<ResponseModel>;
/**
* Replace a model.
*
* @param url
* @param data
* @param requestConfig
* @param additionalHeaders
*/
put<ResponseModel>(url: string, data: any, requestConfig?: RequestConfig, additionalHeaders?: Record<string, string>): ODataResponse<ResponseModel>;
/**
* Partially update a model.
*
* @param url
* @param data
* @param requestConfig
* @param additionalHeaders
*/
patch<ResponseModel>(url: string, data: any, requestConfig?: RequestConfig, additionalHeaders?: Record<string, string>): ODataResponse<ResponseModel>;
/**
* Delete a model or collection.
*
* @param url
* @param requestConfig
* @param additionalHeaders
*/
delete(url: string, requestConfig?: RequestConfig, additionalHeaders?: Record<string, string>): ODataResponse<void>;
/**
* Get binary data (Edm.Stream) as Blob.
*
* @param url
* @param requestConfig
* @param additionalHeaders
*/
getBlob(url: string, requestConfig?: RequestConfig, additionalHeaders?: Record<string, string>): ODataResponse<Blob>;
/**
* Get binary data (Edm.Stream) as ReadableStream.
*
* Cannot be supported by HTTP clients based on XmlHttpRequest, e.g. axios.
* Should throw an error in this case.
*
* @param url
* @param requestConfig
* @param additionalHeaders
*/
getStream(url: string, requestConfig?: RequestConfig, additionalHeaders?: Record<string, string>): ODataResponse<ReadableStream>;
/**
* Updates binary data (Edm.Stream).
*
* @param url
* @param data
* @param mimeType
* @param requestConfig
* @param additionalHeaders
*/
updateBlob(url: string, data: Blob, mimeType: string, requestConfig?: RequestConfig, additionalHeaders?: Record<string, string>): ODataResponse<void | Blob>;
}