{"id":13698059,"url":"https://github.com/igorkulman/Kulman.WPA81.BaseRestService","last_synced_at":"2025-05-04T00:31:04.736Z","repository":{"id":23661211,"uuid":"27032017","full_name":"igorkulman/Kulman.WPA81.BaseRestService","owner":"igorkulman","description":"Base class for a Windows Phone 8.1 XAML, Windows 8.1 and Windows 10 Universal REST service implementation","archived":false,"fork":false,"pushed_at":"2016-09-29T08:12:04.000Z","size":164,"stargazers_count":18,"open_issues_count":0,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-12T10:55:40.746Z","etag":null,"topics":["api","c-sharp","json","rest","uwp"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/igorkulman.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-11-23T12:41:11.000Z","updated_at":"2023-08-27T10:32:53.000Z","dependencies_parsed_at":"2022-08-05T23:00:35.081Z","dependency_job_id":null,"html_url":"https://github.com/igorkulman/Kulman.WPA81.BaseRestService","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igorkulman%2FKulman.WPA81.BaseRestService","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igorkulman%2FKulman.WPA81.BaseRestService/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igorkulman%2FKulman.WPA81.BaseRestService/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igorkulman%2FKulman.WPA81.BaseRestService/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/igorkulman","download_url":"https://codeload.github.com/igorkulman/Kulman.WPA81.BaseRestService/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252272944,"owners_count":21721831,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","c-sharp","json","rest","uwp"],"created_at":"2024-08-02T19:00:39.013Z","updated_at":"2025-05-04T00:31:04.369Z","avatar_url":"https://github.com/igorkulman.png","language":"C#","funding_links":[],"categories":["Networking library"],"sub_categories":[],"readme":"Base REST service for Universal Apps\n============================\n\n[![NuGet version](http://img.shields.io/nuget/v/Kulman.WPA81.BaseRestService.svg?style=flat)](https://nuget.org/packages/Kulman.WPA81.BaseRestService)  [![Build status](https://ci.appveyor.com/api/projects/status/tyk3ff6jamxondgh?svg=true)](https://ci.appveyor.com/project/igorkulman/kulman-wpa81-baserestservice)  [![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/igorkulman/Kulman.WPA81.BaseRestService/master/LICENSE) ![UWP ready](https://img.shields.io/badge/platform-uwp-green.svg)  ![WinRT ready](https://img.shields.io/badge/platform-winrt-green.svg)  ![WPA81 ready](https://img.shields.io/badge/platform-wpa81-green.svg)\n\nBase class for a Windows Phone 8.1 (Silverlight), Windows Phone 8.1 XAML and Windows 8.1 REST service implementation. Also works fin in Windows 10 projects (UWP).\n\n## Installation\n\n\tPM\u003e Install-Package Kulman.WPA81.BaseRestService\n\t\n## Usage\n\nCreate your service class and inherit from BaseRestService. The minimum you need to do to make it work is to override the GetBaseUrl() method to set the base url for all the requests.\n\n```csharp\npublic class MyDataService: BaseRestService\n{\n    protected override string GetBaseUrl()\n    {\n        return \"my base url\";\n    }\n}\n```  \n  \nYou can (but do not have to) also override the GetRequestHeaders() method to set the default request headers.\n  \n```csharp  \nprotected override Dictionary\u003cstring, string\u003e GetRequestHeaders(string requestUrl)\n{\n    return new Dictionary\u003cstring, string\u003e\n    {\n        { \"Accept-Encoding\", \"gzip, deflate\" },\n        { \"Accept\", \"application/json\" },\n    };\n}\n```\n\nYou can also override the `CreateJsonSerializerSettings` method with you need custom JSON deserialization settings. \n\nNow you can use the following methods in your class:\n\n```csharp\nTask\u003cT\u003e Get\u003cT\u003e(string url);\nTask\u003cT\u003e Put\u003cT\u003e(string url, object request);\nTask\u003cT\u003e Post\u003cT\u003e(string url, object request);\nTask\u003cT\u003e Patch\u003cT\u003e(string url, object request);\nTask Delete(string url);\nTask\u003cDictionary\u003cstring, string\u003e\u003e Head(string url);\n```\n\nIf you need to get the raw request, there are overloads returning `HttpResponseMessage`:\n\n```csharp\nTask\u003cHttpResponseMessage\u003e Get(string url);\nTask\u003cHttpResponseMessage\u003e Put(string url, object request);\nTask\u003cHttpResponseMessage\u003e Post(string url, object request);\nTask\u003cHttpResponseMessage\u003e Patch(string url, object request);\n```\n\nAll the available methods have overloads accepting and `CancellationToken`.\n\nMethods in your service may then look like this\n\n```csharp\npublic Task\u003cList\u003cAccount\u003e\u003e GetAccounts()\n{\n    return Get\u003cList\u003cAccount\u003e\u003e(\"/accounts\");\n}\n \npublic Task\u003cAccount\u003e UpdateAccount(Account account)\n{\n    return Patch\u003cAccount\u003e(\"/accounts\",account);\n}\n```\n\nFor more information, see my blog post [REST service base class for Windows Phone 8.1 XAML apps](http://blog.kulman.sk/rest-service-base-class-for-windows-phone-8-1-xaml-apps/).\n\nFor changes, [see the changelog](https://github.com/igorkulman/Kulman.WPA81.BaseRestService/blob/master/CHANGELOG.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figorkulman%2FKulman.WPA81.BaseRestService","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Figorkulman%2FKulman.WPA81.BaseRestService","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figorkulman%2FKulman.WPA81.BaseRestService/lists"}