using System; using System.Collections.Generic; using System.Threading.Tasks; using Newtonsoft.Json; using SpotifyAPI.Web.Models; namespace SpotifyAPI.Web { public interface IClient : IDisposable { JsonSerializerSettings JsonSettings { get; set; } /// /// Downloads data from an URL and returns it /// /// An URL /// /// Tuple Download(string url, Dictionary headers = null); /// /// Downloads data async from an URL and returns it /// /// /// /// Task> DownloadAsync(string url, Dictionary headers = null); /// /// Downloads data from an URL and returns it /// /// An URL /// /// Tuple DownloadRaw(string url, Dictionary headers = null); /// /// Downloads data async from an URL and returns it /// /// /// /// Task> DownloadRawAsync(string url, Dictionary headers = null); /// /// Downloads data from an URL and converts it to an object /// /// The Type which the object gets converted to /// An URL /// /// Tuple DownloadJson(string url, Dictionary headers = null); /// /// Downloads data async from an URL and converts it to an object /// /// The Type which the object gets converted to /// An URL /// /// Task> DownloadJsonAsync(string url, Dictionary headers = null); /// /// Uploads data from an URL and returns the response /// /// An URL /// The Body-Data (most likely a JSON String) /// The Upload-method (POST,DELETE,PUT) /// /// Tuple Upload(string url, string body, string method, Dictionary headers = null); /// /// Uploads data async from an URL and returns the response /// /// An URL /// The Body-Data (most likely a JSON String) /// The Upload-method (POST,DELETE,PUT) /// /// Task> UploadAsync(string url, string body, string method, Dictionary headers = null); /// /// Uploads data from an URL and returns the response /// /// An URL /// The Body-Data (most likely a JSON String) /// The Upload-method (POST,DELETE,PUT) /// /// Tuple UploadRaw(string url, string body, string method, Dictionary headers = null); /// /// Uploads data async from an URL and returns the response /// /// An URL /// The Body-Data (most likely a JSON String) /// The Upload-method (POST,DELETE,PUT) /// /// Task> UploadRawAsync(string url, string body, string method, Dictionary headers = null); /// /// Uploads data from an URL and converts the response to an object /// /// The Type which the object gets converted to /// An URL /// The Body-Data (most likely a JSON String) /// The Upload-method (POST,DELETE,PUT) /// /// Tuple UploadJson(string url, string body, string method, Dictionary headers = null); /// /// Uploads data async from an URL and converts the response to an object /// /// The Type which the object gets converted to /// An URL /// The Body-Data (most likely a JSON String) /// The Upload-method (POST,DELETE,PUT) /// /// Task> UploadJsonAsync(string url, string body, string method, Dictionary headers = null); } }