{"id":1629,"url":"https://github.com/ishkawa/APIKit","last_synced_at":"2025-08-06T14:31:11.392Z","repository":{"id":27488250,"uuid":"30968293","full_name":"ishkawa/APIKit","owner":"ishkawa","description":"Type-safe networking abstraction layer that associates request type with response type.","archived":false,"fork":false,"pushed_at":"2024-06-30T04:14:07.000Z","size":1438,"stargazers_count":1991,"open_issues_count":12,"forks_count":202,"subscribers_count":59,"default_branch":"master","last_synced_at":"2024-08-06T01:10:00.879Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Swift","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/ishkawa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-02-18T14:16:16.000Z","updated_at":"2024-08-01T13:28:46.000Z","dependencies_parsed_at":"2022-06-30T07:01:38.705Z","dependency_job_id":"877c2ce1-fb15-4bc9-8afa-3a652e9cb2ce","html_url":"https://github.com/ishkawa/APIKit","commit_stats":{"total_commits":782,"total_committers":43,"mean_commits":"18.186046511627907","dds":0.3312020460358056,"last_synced_commit":"1a5e7ae0aed3f19c1ed9903792ead248f97fa38a"},"previous_names":[],"tags_count":77,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ishkawa%2FAPIKit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ishkawa%2FAPIKit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ishkawa%2FAPIKit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ishkawa%2FAPIKit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ishkawa","download_url":"https://codeload.github.com/ishkawa/APIKit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":215780272,"owners_count":15929791,"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":[],"created_at":"2024-01-05T20:15:51.802Z","updated_at":"2024-08-17T16:31:03.076Z","avatar_url":"https://github.com/ishkawa.png","language":"Swift","funding_links":[],"categories":["Networking","Libs","Swift","Network","Network [🔝](#readme)"],"sub_categories":["Video","Network","Other free courses"],"readme":"APIKit\n======\n\n[![Build Status](https://travis-ci.org/ishkawa/APIKit.svg?branch=master)](https://travis-ci.org/ishkawa/APIKit)\n[![codecov](https://codecov.io/gh/ishkawa/APIKit/branch/master/graph/badge.svg)](https://codecov.io/gh/ishkawa/APIKit)\n[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)\n[![Version](https://img.shields.io/cocoapods/v/APIKit.svg?style=flat)](http://cocoadocs.org/docsets/APIKit)\n[![Platform](https://img.shields.io/cocoapods/p/APIKit.svg?style=flat)](http://cocoadocs.org/docsets/APIKit)\n[![Swift Package Manager](https://img.shields.io/badge/Swift%20Package%20Manager-compatible-brightgreen.svg)](https://github.com/apple/swift-package-manager)\n\nAPIKit is a type-safe networking abstraction layer that associates request type with response type.\n\n```swift\n// SearchRepositoriesRequest conforms to Request protocol.\nlet request = SearchRepositoriesRequest(query: \"swift\")\n\n// Session receives an instance of a type that conforms to Request.\nSession.send(request) { result in\n    switch result {\n    case .success(let response):\n        // Type of `response` is `[Repository]`,\n        // which is inferred from `SearchRepositoriesRequest`.\n        print(response)\n\n    case .failure(let error):\n        self.printError(error)\n    }\n}\n```\n\n## Requirements\n\n- Swift 5.3 or later\n- iOS 9.0 or later\n- Mac OS 10.10 or later\n- watchOS 2.0 or later\n- tvOS 9.0 or later\n\nIf you use Swift 2.2 or 2.3, try [APIKit 2.0.5](https://github.com/ishkawa/APIKit/tree/2.0.5).\n\nIf you use Swift 4.2 or before, try [APIKit 4.1.0](https://github.com/ishkawa/APIKit/tree/4.1.0).\n\nIf you use Swift 5.2 or before, try [APIKit 5.3.0](https://github.com/ishkawa/APIKit/tree/5.3.0).\n\n## Installation\n\n#### [Carthage](https://github.com/Carthage/Carthage)\n\n- Insert `github \"ishkawa/APIKit\" ~\u003e 5.0` to your Cartfile.\n- Run `carthage update`.\n- Link your app with `APIKit.framework` in `Carthage/Build`.\n\n#### [CocoaPods](https://github.com/cocoapods/cocoapods)\n\n- Insert `pod 'APIKit', '~\u003e 5.0'` to your Podfile.\n- Run `pod install`.\n\nNote: CocoaPods 1.4.0 is required to install APIKit 5.\n\n## Documentation\n\n- [Getting started](Documentation/GettingStarted.md)\n- [Defining Request Protocol for Web Service](Documentation/DefiningRequestProtocolForWebService.md)\n- [Convenience Parameters and Actual Parameters](Documentation/ConvenienceParametersAndActualParameters.md)\n\n### Advanced Guides\n\n- [Customizing Networking Backend](Documentation/CustomizingNetworkingBackend.md)\n\n### Migration Guides\n\n- [APIKit 3 Migration Guide](Documentation/APIKit3MigrationGuide.md)\n- [APIKit 2 Migration Guide](Documentation/APIKit2MigrationGuide.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fishkawa%2FAPIKit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fishkawa%2FAPIKit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fishkawa%2FAPIKit/lists"}