Types
BasicAuth = tuple[login: string, password: string]
- Basic auth type
EncodeQueryParams = object usePlus*: bool omitEq*: bool sep*: char
- Parameters for encodeQuery procedure
Method = enum GET, PUT, POST, PATCH, DELETE, HEAD, OPTIONS
- Supported HTTP methods
MultipartFile = tuple[multipartName, fileName, contentType, content: string]
- Type for uploaded file
QueryParam = tuple[key: string, value: string]
- Type for URL query params
Request = object url*: string headers*: seq[tuple[key: string, val: string]] httpMethod*: Method body*: string
- Type to store request information in response
RequestHeader = tuple[key: string, value: string]
- Type for HTTP header
Response = object status*: int body*: string headers*: TableRef[string, seq[string]] request*: Request
- Type for HTTP response
StreamingMultipartFile = tuple[name, file: string]
- Type for streaming file
Procs
proc delete(url`gensym24: string; headers`gensym24: openArray[RequestHeader] = []; query`gensym24: openArray[QueryParam] = []; encodeQueryParams`gensym24: EncodeQueryParams = defaultEncodeQueryParams; body`gensym24: string = ""; files`gensym24: openArray[MultipartFile] = []; streamingFiles`gensym24: openArray[StreamingMultipartFile] = []; auth`gensym24: BasicAuth = ("", ""); timeout`gensym24 = -1; ignoreSsl`gensym24 = false; sslContext`gensym24: SslContext = nil): Response {....raises: [ LibraryError, SslError, Exception, IOError, KeyError, ValueError, HttpRequestError, OSError, TimeoutError, ProtocolError], tags: [RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect, TimeEffect], forbids: [].}
- Proc for DELETE HTTP method
proc get(url`gensym18: string; headers`gensym18: openArray[RequestHeader] = []; query`gensym18: openArray[QueryParam] = []; encodeQueryParams`gensym18: EncodeQueryParams = defaultEncodeQueryParams; auth`gensym18: BasicAuth = ("", ""); timeout`gensym18 = -1; ignoreSsl`gensym18 = false; sslContext`gensym18: SslContext = nil): Response {....raises: [ LibraryError, SslError, Exception, IOError, KeyError, ValueError, HttpRequestError, OSError, TimeoutError, ProtocolError], tags: [RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect, TimeEffect], forbids: [].}
- Proc for GET HTTP method
proc head(url`gensym19: string; headers`gensym19: openArray[RequestHeader] = []; query`gensym19: openArray[QueryParam] = []; encodeQueryParams`gensym19: EncodeQueryParams = defaultEncodeQueryParams; auth`gensym19: BasicAuth = ("", ""); timeout`gensym19 = -1; ignoreSsl`gensym19 = false; sslContext`gensym19: SslContext = nil): Response {....raises: [ LibraryError, SslError, Exception, IOError, KeyError, ValueError, HttpRequestError, OSError, TimeoutError, ProtocolError], tags: [RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect, TimeEffect], forbids: [].}
- Proc for HEAD HTTP method
proc options(url`gensym20: string; headers`gensym20: openArray[RequestHeader] = []; query`gensym20: openArray[QueryParam] = []; encodeQueryParams`gensym20: EncodeQueryParams = defaultEncodeQueryParams; auth`gensym20: BasicAuth = ("", ""); timeout`gensym20 = -1; ignoreSsl`gensym20 = false; sslContext`gensym20: SslContext = nil): Response {....raises: [ LibraryError, SslError, Exception, IOError, KeyError, ValueError, HttpRequestError, OSError, TimeoutError, ProtocolError], tags: [RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect, TimeEffect], forbids: [].}
- Proc for OPTIONS HTTP method
proc patch(url`gensym23: string; headers`gensym23: openArray[RequestHeader] = []; query`gensym23: openArray[QueryParam] = []; encodeQueryParams`gensym23: EncodeQueryParams = defaultEncodeQueryParams; body`gensym23: string = ""; files`gensym23: openArray[MultipartFile] = []; streamingFiles`gensym23: openArray[StreamingMultipartFile] = []; auth`gensym23: BasicAuth = ("", ""); timeout`gensym23 = -1; ignoreSsl`gensym23 = false; sslContext`gensym23: SslContext = nil): Response {....raises: [ LibraryError, SslError, Exception, IOError, KeyError, ValueError, HttpRequestError, OSError, TimeoutError, ProtocolError], tags: [RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect, TimeEffect], forbids: [].}
- Proc for PATCH HTTP method
proc post(url`gensym22: string; headers`gensym22: openArray[RequestHeader] = []; query`gensym22: openArray[QueryParam] = []; encodeQueryParams`gensym22: EncodeQueryParams = defaultEncodeQueryParams; body`gensym22: string = ""; files`gensym22: openArray[MultipartFile] = []; streamingFiles`gensym22: openArray[StreamingMultipartFile] = []; auth`gensym22: BasicAuth = ("", ""); timeout`gensym22 = -1; ignoreSsl`gensym22 = false; sslContext`gensym22: SslContext = nil): Response {....raises: [ LibraryError, SslError, Exception, IOError, KeyError, ValueError, HttpRequestError, OSError, TimeoutError, ProtocolError], tags: [RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect, TimeEffect], forbids: [].}
- Proc for POST HTTP method
proc put(url`gensym21: string; headers`gensym21: openArray[RequestHeader] = []; query`gensym21: openArray[QueryParam] = []; encodeQueryParams`gensym21: EncodeQueryParams = defaultEncodeQueryParams; body`gensym21: string = ""; files`gensym21: openArray[MultipartFile] = []; streamingFiles`gensym21: openArray[StreamingMultipartFile] = []; auth`gensym21: BasicAuth = ("", ""); timeout`gensym21 = -1; ignoreSsl`gensym21 = false; sslContext`gensym21: SslContext = nil): Response {....raises: [ LibraryError, SslError, Exception, IOError, KeyError, ValueError, HttpRequestError, OSError, TimeoutError, ProtocolError], tags: [RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect, TimeEffect], forbids: [].}
- Proc for PUT HTTP method
proc raiseForStatus(response: Response) {....raises: [HttpError], tags: [], forbids: [].}
- Throws HttpError exceptions if status is 400 or above
proc request(url: string; httpMethod: Method = Method.GET; headers: openArray[RequestHeader] = []; query: openArray[QueryParam] = []; encodeQueryParams: EncodeQueryParams = defaultEncodeQueryParams; body: string = ""; files: openArray[MultipartFile] = []; streamingFiles: openArray[StreamingMultipartFile] = []; auth: BasicAuth = ("", ""); timeout = -1; ignoreSsl = false; sslContext: SslContext = nil): Response {....raises: [LibraryError, SslError, Exception, IOError, KeyError, ValueError, HttpRequestError, OSError, TimeoutError, ProtocolError], tags: [RootEffect, ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect, TimeEffect], forbids: [].}
- Genreal proc to make HTTP request with every HTTP method
proc toJsonString(obj: object): string
- Converts object of any type to json. Helpful to use for body argument