Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dduan/just
Swift HTTP for Humans
https://github.com/dduan/just
http requests swift
Last synced: 5 days ago
JSON representation
Swift HTTP for Humans
- Host: GitHub
- URL: https://github.com/dduan/just
- Owner: dduan
- License: mit
- Created: 2015-04-21T08:21:10.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-03-26T16:03:27.000Z (9 months ago)
- Last Synced: 2024-10-29T17:55:00.485Z (about 2 months ago)
- Topics: http, requests, swift
- Language: Swift
- Homepage:
- Size: 2.4 MB
- Stars: 1,404
- Watchers: 38
- Forks: 134
- Open Issues: 30
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
- Support: Supporting Files/Info-Tests.plist
Awesome Lists containing this project
README
![Supported Flatform](https://img.shields.io/cocoapods/p/Just.svg)
[![CocoaPods](https://img.shields.io/cocoapods/v/Just.svg)](https://cocoapods.org/pods/Just)
[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)
[![Build Status](https://travis-ci.org/dduan/Just.svg?branch=master)](https://travis-ci.org/dduan/Just)Just is a client-side HTTP library inspired by [python-requests][] - HTTP for Humans.
[python-requests]: http://python-requests.org "python-requests"
# Features
Just lets you to the following effortlessly:
- URL queries
- custom headers
- form (`x-www-form-encoded`) / JSON HTTP body
- redirect control
- multipart file upload along with form values.
- basic/digest authentication
- cookies
- timeouts
- synchronous / asynchronous requests
- upload / download progress tracking for asynchronous requests
- link headers
- friendly accessible results# Use
The simplest request with Just looks like this:
```swift
// A simple get request
Just.get("http://httpbin.org/get")
```The next example shows how to upload a file along with some data:
```swift
// talk to registration end point
let r = Just.post(
"http://justiceleauge.org/member/register",
data: ["username": "barryallen", "password":"ReverseF1ashSucks"],
files: ["profile_photo": .url(fileURLWithPath:"flash.jpeg", nil)]
)if r.ok { /* success! */ }
```Here's the same example done asynchronously:
```swift
// talk to registration end point
Just.post(
"http://justiceleauge.org/member/register",
data: ["username": "barryallen", "password":"ReverseF1ashSucks"],
files: ["profile_photo": .url(fileURLWithPath:"flash.jpeg", nil)]
) { r in
if r.ok { /* success! */ }
}```
Read *Getting Started* [on the web][starting link] or
[in this playground][starting playground] to learn more![starting playground]: https://github.com/dduan/Just/blob/master/Docs/QuickStart.zip?raw=true
[starting link]: https://JustHTTP.github.io# Install
Here are some ways to leverage Just.
## Xcode
Add `https://github.com/dduan/Just.git` the usual way.
## Swift Package Manager
Add the following to your `dependencies`:
```swift
.package(url: "https://github.com/dduan/Just.git", from: "0.8.0")
```… and `"Just"` to your target dependencies.
## Carthage
Include the following in your Cartfile:
github "dduan/Just"
Just includes dynamic framework targets for both iOS and OS X.
## CocoaPods
The usual way:
platform :ios, '8.0'
use_frameworks!target 'MyApp' do
pod 'Just'
end## Manual
Drop `Just.xcodeproj` into your project navigator. Under the *General* tab of
your project settings, use the plus sign to add `Just.framework` to
*Linked Framework and Libraries*. Make sure to include the correct version
for your target's platform.It's also common to add Just as a git submodule to your projects repository:
cd path/to/your/project
git submodule add https://github.com/dduan/Just.git## Source File
Put `Just.swift` directly into your project. Alternately, put it in the
*Sources* folder of a playground. (The latter makes a fun way to explore the
web.)[Carthage]: https://github.com/Carthage/Carthage "Carthage"
# Contribute
Pull requests are welcome. Here are some tips for code contributors:
Work in `Just.xcworkspace`.
The tests for link headers relies on Github APIs, which has a low per-hour
limit. To overcome this, you can edit the Xcode build schemes and add
[environment variables][XcodeEnvVar] `GITHUB_TOKEN`. Learn more about
personal tokens [here][GithubToken].For Xcode rebels, checkout `Makefile`.
HTML documentation pages are generated by literate programmin tool [docco][]
[docco]: http://jashkenas.github.io/docco/ "docco"
[GithubToken]: https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications
[XcodeEnvVar]: http://nshipster.com/launch-arguments-and-environment-variables/# License
MIT, see [LICENSE.md](https://github.com/dduan/Just/blob/master/LICENSE.md).