Skip to content

Commit 70336cb

Browse files
authored
Merge pull request #425 from go-resty/for-2.6.0-release
2 parents d01e8d1 + ea80370 commit 70336cb

22 files changed

+52
-51
lines changed

LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
The MIT License (MIT)
22

3-
Copyright (c) 2015-2020 Jeevanandam M., https://myjeeva.com <[email protected]>
3+
Copyright (c) 2015-2021 Jeevanandam M., https://myjeeva.com <[email protected]>
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

README.md

+14-13
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<p align="center"><a href="#features">Features</a> section describes in detail about Resty capabilities</p>
55
</p>
66
<p align="center">
7-
<p align="center"><a href="https://travis-ci.org/go-resty/resty"><img src="https://travis-ci.org/go-resty/resty.svg?branch=master" alt="Build Status"></a> <a href="https://codecov.io/gh/go-resty/resty/branch/master"><img src="https://codecov.io/gh/go-resty/resty/branch/master/graph/badge.svg" alt="Code Coverage"></a> <a href="https://goreportcard.com/report/go-resty/resty"><img src="https://goreportcard.com/badge/go-resty/resty" alt="Go Report Card"></a> <a href="https://github.com/go-resty/resty/releases/latest"><img src="https://img.shields.io/badge/version-2.5.0-blue.svg" alt="Release Version"></a> <a href="https://pkg.go.dev/github.com/go-resty/resty/v2"><img src="https://godoc.org/github.com/go-resty/resty?status.svg" alt="GoDoc"></a> <a href="LICENSE"><img src="https://img.shields.io/github/license/go-resty/resty.svg" alt="License"></a> <a href="https://github.com/avelino/awesome-go"><img src="https://awesome.re/mentioned-badge.svg" alt="Mentioned in Awesome Go"></a></p>
7+
<p align="center"><a href="https://travis-ci.org/go-resty/resty"><img src="https://travis-ci.org/go-resty/resty.svg?branch=master" alt="Build Status"></a> <a href="https://codecov.io/gh/go-resty/resty/branch/master"><img src="https://codecov.io/gh/go-resty/resty/branch/master/graph/badge.svg" alt="Code Coverage"></a> <a href="https://goreportcard.com/report/go-resty/resty"><img src="https://goreportcard.com/badge/go-resty/resty" alt="Go Report Card"></a> <a href="https://github.com/go-resty/resty/releases/latest"><img src="https://img.shields.io/badge/version-2.6.0-blue.svg" alt="Release Version"></a> <a href="https://pkg.go.dev/github.com/go-resty/resty/v2"><img src="https://pkg.go.dev/badge/github.com/go-resty/resty" alt="GoDoc"></a> <a href="LICENSE"><img src="https://img.shields.io/github/license/go-resty/resty.svg" alt="License"></a> <a href="https://github.com/avelino/awesome-go"><img src="https://awesome.re/mentioned-badge.svg" alt="Mentioned in Awesome Go"></a></p>
88
</p>
99
<p align="center">
1010
<h4 align="center">Resty Communication Channels</h4>
@@ -13,7 +13,7 @@
1313

1414
## News
1515

16-
* v2.5.0 [released](https://github.com/go-resty/resty/releases/tag/v2.5.0) and tagged on Feb 11, 2021.
16+
* v2.6.0 [released](https://github.com/go-resty/resty/releases/tag/v2.6.0) and tagged on Apr 09, 2021.
1717
* v2.0.0 [released](https://github.com/go-resty/resty/releases/tag/v2.0.0) and tagged on Jul 16, 2019.
1818
* v1.12.0 [released](https://github.com/go-resty/resty/releases/tag/v1.12.0) and tagged on Feb 27, 2019.
1919
* v1.0 released and tagged on Sep 25, 2017. - Resty's first version was released on Sep 15, 2015 then it grew gradually as a very handy and helpful library. Its been a two years since first release. I'm very thankful to Resty users and its [contributors](https://github.com/go-resty/resty/graphs/contributors).
@@ -22,44 +22,44 @@
2222

2323
* GET, POST, PUT, DELETE, HEAD, PATCH, OPTIONS, etc.
2424
* Simple and chainable methods for settings and request
25-
* [Request](https://godoc.org/github.com/go-resty/resty#Request) Body can be `string`, `[]byte`, `struct`, `map`, `slice` and `io.Reader` too
25+
* [Request](https://pkg.go.dev/github.com/go-resty/resty/v2#Request) Body can be `string`, `[]byte`, `struct`, `map`, `slice` and `io.Reader` too
2626
* Auto detects `Content-Type`
2727
* Buffer less processing for `io.Reader`
2828
* Native `*http.Request` instance may be accessed during middleware and request execution via `Request.RawRequest`
2929
* Request Body can be read multiple times via `Request.RawRequest.GetBody()`
30-
* [Response](https://godoc.org/github.com/go-resty/resty#Response) object gives you more possibility
30+
* [Response](https://pkg.go.dev/github.com/go-resty/resty/v2#Response) object gives you more possibility
3131
* Access as `[]byte` array - `response.Body()` OR Access as `string` - `response.String()`
3232
* Know your `response.Time()` and when we `response.ReceivedAt()`
3333
* Automatic marshal and unmarshal for `JSON` and `XML` content type
3434
* Default is `JSON`, if you supply `struct/map` without header `Content-Type`
3535
* For auto-unmarshal, refer to -
36-
- Success scenario [Request.SetResult()](https://godoc.org/github.com/go-resty/resty#Request.SetResult) and [Response.Result()](https://godoc.org/github.com/go-resty/resty#Response.Result).
37-
- Error scenario [Request.SetError()](https://godoc.org/github.com/go-resty/resty#Request.SetError) and [Response.Error()](https://godoc.org/github.com/go-resty/resty#Response.Error).
36+
- Success scenario [Request.SetResult()](https://pkg.go.dev/github.com/go-resty/resty/v2#Request.SetResult) and [Response.Result()](https://pkg.go.dev/github.com/go-resty/resty/v2#Response.Result).
37+
- Error scenario [Request.SetError()](https://pkg.go.dev/github.com/go-resty/resty/v2#Request.SetError) and [Response.Error()](https://pkg.go.dev/github.com/go-resty/resty/v2#Response.Error).
3838
- Supports [RFC7807](https://tools.ietf.org/html/rfc7807) - `application/problem+json` & `application/problem+xml`
3939
* Easy to upload one or more file(s) via `multipart/form-data`
4040
* Auto detects file content type
41-
* Request URL [Path Params (aka URI Params)](https://godoc.org/github.com/go-resty/resty#Request.SetPathParams)
41+
* Request URL [Path Params (aka URI Params)](https://pkg.go.dev/github.com/go-resty/resty/v2#Request.SetPathParams)
4242
* Backoff Retry Mechanism with retry condition function [reference](retry_test.go)
43-
* Resty client HTTP & REST [Request](https://godoc.org/github.com/go-resty/resty#Client.OnBeforeRequest) and [Response](https://godoc.org/github.com/go-resty/resty#Client.OnAfterResponse) middlewares
43+
* Resty client HTTP & REST [Request](https://pkg.go.dev/github.com/go-resty/resty/v2#Client.OnBeforeRequest) and [Response](https://pkg.go.dev/github.com/go-resty/resty/v2#Client.OnAfterResponse) middlewares
4444
* `Request.SetContext` supported
4545
* Authorization option of `BasicAuth` and `Bearer` token
4646
* Set request `ContentLength` value for all request or particular request
47-
* Custom [Root Certificates](https://godoc.org/github.com/go-resty/resty#Client.SetRootCertificate) and Client [Certificates](https://godoc.org/github.com/go-resty/resty#Client.SetCertificates)
48-
* Download/Save HTTP response directly into File, like `curl -o` flag. See [SetOutputDirectory](https://godoc.org/github.com/go-resty/resty#Client.SetOutputDirectory) & [SetOutput](https://godoc.org/github.com/go-resty/resty#Request.SetOutput).
47+
* Custom [Root Certificates](https://pkg.go.dev/github.com/go-resty/resty/v2#Client.SetRootCertificate) and Client [Certificates](https://pkg.go.dev/github.com/go-resty/resty/v2#Client.SetCertificates)
48+
* Download/Save HTTP response directly into File, like `curl -o` flag. See [SetOutputDirectory](https://pkg.go.dev/github.com/go-resty/resty/v2#Client.SetOutputDirectory) & [SetOutput](https://pkg.go.dev/github.com/go-resty/resty/v2#Request.SetOutput).
4949
* Cookies for your request and CookieJar support
5050
* SRV Record based request instead of Host URL
5151
* Client settings like `Timeout`, `RedirectPolicy`, `Proxy`, `TLSClientConfig`, `Transport`, etc.
52-
* Optionally allows GET request with payload, see [SetAllowGetMethodPayload](https://godoc.org/github.com/go-resty/resty#Client.SetAllowGetMethodPayload)
52+
* Optionally allows GET request with payload, see [SetAllowGetMethodPayload](https://pkg.go.dev/github.com/go-resty/resty/v2#Client.SetAllowGetMethodPayload)
5353
* Supports registering external JSON library into resty, see [how to use](https://github.com/go-resty/resty/issues/76#issuecomment-314015250)
5454
* Exposes Response reader without reading response (no auto-unmarshaling) if need be, see [how to use](https://github.com/go-resty/resty/issues/87#issuecomment-322100604)
5555
* Option to specify expected `Content-Type` when response `Content-Type` header missing. Refer to [#92](https://github.com/go-resty/resty/issues/92)
5656
* Resty design
5757
* Have client level settings & options and also override at Request level if you want to
5858
* Request and Response middleware
5959
* Create Multiple clients if you want to `resty.New()`
60-
* Supports `http.RoundTripper` implementation, see [SetTransport](https://godoc.org/github.com/go-resty/resty#Client.SetTransport)
60+
* Supports `http.RoundTripper` implementation, see [SetTransport](https://pkg.go.dev/github.com/go-resty/resty/v2#Client.SetTransport)
6161
* goroutine concurrent safe
62-
* Resty Client trace, see [Client.EnableTrace](https://godoc.org/github.com/go-resty/resty#Client.EnableTrace) and [Request.EnableTrace](https://godoc.org/github.com/go-resty/resty#Request.EnableTrace)
62+
* Resty Client trace, see [Client.EnableTrace](https://pkg.go.dev/github.com/go-resty/resty/v2#Client.EnableTrace) and [Request.EnableTrace](https://pkg.go.dev/github.com/go-resty/resty/v2#Request.EnableTrace)
6363
* Since v2.4.0, trace info contains a `RequestAttempt` value, and the `Request` object contains an `Attempt` attribute
6464
* Debug mode - clean and informative logging presentation
6565
* Gzip - Go does it automatically also resty has fallback handling too
@@ -78,6 +78,7 @@
7878
* Retry Mechanism [how to use](#retries)
7979
* Backoff Retry
8080
* Conditional Retry
81+
* Since v2.6.0, Retry Hooks - [Client](https://pkg.go.dev/github.com/go-resty/resty/v2#Client.AddRetryHook), [Request](https://pkg.go.dev/github.com/go-resty/resty/v2#Request.AddRetryHook)
8182
* SRV Record based request instead of Host URL [how to use](resty_test.go#L1412)
8283
* etc (upcoming - throw your idea's [here](https://github.com/go-resty/resty/issues)).
8384

client.go

+8-6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) 2015-2020 Jeevanandam M ([email protected]), All rights reserved.
1+
// Copyright (c) 2015-2021 Jeevanandam M ([email protected]), All rights reserved.
22
// resty source code and usage is governed by a MIT style
33
// license that can be found in the LICENSE file.
44

@@ -202,6 +202,8 @@ func (c *Client) SetHeaders(headers map[string]string) *Client {
202202
// SetHeaderVerbatim("UPPERCASE", "available")
203203
//
204204
// Also you can override header value, which was set at client instance level.
205+
//
206+
// Since v2.6.0
205207
func (c *Client) SetHeaderVerbatim(header, value string) *Client {
206208
c.Header[header] = []string{value}
207209
return c
@@ -594,19 +596,19 @@ func (c *Client) AddRetryCondition(condition RetryConditionFunc) *Client {
594596

595597
// AddRetryAfterErrorCondition adds the basic condition of retrying after encountering
596598
// an error from the http response
599+
//
600+
// Since v2.6.0
597601
func (c *Client) AddRetryAfterErrorCondition() *Client {
598602
c.AddRetryCondition(func(response *Response, err error) bool {
599-
if response.IsError() {
600-
return true
601-
}
602-
603-
return false
603+
return response.IsError()
604604
})
605605
return c
606606
}
607607

608608
// AddRetryHook adds a side-effecting retry hook to an array of hooks
609609
// that will be executed on each retry.
610+
//
611+
// Since v2.6.0
610612
func (c *Client) AddRetryHook(hook OnRetryFunc) *Client {
611613
c.RetryHooks = append(c.RetryHooks, hook)
612614
return c

client_test.go

+4-8
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) 2015-2020 Jeevanandam M ([email protected]), All rights reserved.
1+
// Copyright (c) 2015-2021 Jeevanandam M ([email protected]), All rights reserved.
22
// resty source code and usage is governed by a MIT style
33
// license that can be found in the LICENSE file.
44

@@ -261,8 +261,8 @@ func TestClientSetHeaderVerbatim(t *testing.T) {
261261
SetHeaderVerbatim("header-lowercase", "value_lowercase").
262262
SetHeader("header-lowercase", "value_standard")
263263

264-
assertEqual(t, "value_lowercase", strings.Join(c.Header["header-lowercase"], ""))
265-
assertEqual(t, "value_standard", strings.Join(c.Header["Header-Lowercase"], ""))
264+
assertEqual(t, "value_lowercase", strings.Join(c.Header["header-lowercase"], "")) //nolint
265+
assertEqual(t, "value_standard", c.Header.Get("Header-Lowercase"))
266266
}
267267

268268
func TestClientSetTransport(t *testing.T) {
@@ -366,11 +366,7 @@ func TestClientOptions(t *testing.T) {
366366

367367
client.AddRetryAfterErrorCondition()
368368
equal(client.RetryConditions[0], func(response *Response, err error) bool {
369-
if response.IsError() {
370-
return true
371-
}
372-
373-
return false
369+
return response.IsError()
374370
})
375371

376372
err := &AuthError{}

context_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) 2015-2020 Jeevanandam M ([email protected])
1+
// Copyright (c) 2015-2021 Jeevanandam M ([email protected])
22
// 2016 Andrew Grigorev (https://github.com/ei-grad)
33
// All rights reserved.
44
// resty source code and usage is governed by a MIT style

example_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) 2015-2020 Jeevanandam M. ([email protected]), All rights reserved.
1+
// Copyright (c) 2015-2021 Jeevanandam M. ([email protected]), All rights reserved.
22
// resty source code and usage is governed by a MIT style
33
// license that can be found in the LICENSE file.
44

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
module github.com/go-resty/resty/v2
22

3-
require golang.org/x/net v0.0.0-20201224014010-6772e930b67b
3+
require golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4
44

55
go 1.11

go.sum

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
golang.org/x/net v0.0.0-20201224014010-6772e930b67b h1:iFwSg7t5GZmB/Q5TjiEAsdoLDrdJRC1RiF2WhuV29Qw=
2-
golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
1+
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 h1:4nGaVu0QrbjT/AK2PRLuQfQuh6DJve+pELhqTdAj3x0=
2+
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
33
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
4+
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
45
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
56
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
67
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=

middleware.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) 2015-2020 Jeevanandam M ([email protected]), All rights reserved.
1+
// Copyright (c) 2015-2021 Jeevanandam M ([email protected]), All rights reserved.
22
// resty source code and usage is governed by a MIT style
33
// license that can be found in the LICENSE file.
44

redirect.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) 2015-2020 Jeevanandam M ([email protected]), All rights reserved.
1+
// Copyright (c) 2015-2021 Jeevanandam M ([email protected]), All rights reserved.
22
// resty source code and usage is governed by a MIT style
33
// license that can be found in the LICENSE file.
44

request.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) 2015-2020 Jeevanandam M ([email protected]), All rights reserved.
1+
// Copyright (c) 2015-2021 Jeevanandam M ([email protected]), All rights reserved.
22
// resty source code and usage is governed by a MIT style
33
// license that can be found in the LICENSE file.
44

@@ -125,6 +125,8 @@ func (r *Request) SetHeaders(headers map[string]string) *Request {
125125
// SetHeaderVerbatim("UPPERCASE", "available")
126126
//
127127
// Also you can override header value, which was set at client instance level.
128+
//
129+
// Since v2.6.0
128130
func (r *Request) SetHeaderVerbatim(header, value string) *Request {
129131
r.Header[header] = []string{value}
130132
return r

request_test.go

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) 2015-2020 Jeevanandam M ([email protected]), All rights reserved.
1+
// Copyright (c) 2015-2021 Jeevanandam M ([email protected]), All rights reserved.
22
// resty source code and usage is governed by a MIT style
33
// license that can be found in the LICENSE file.
44

@@ -1367,11 +1367,10 @@ func TestSetHeaderVerbatim(t *testing.T) {
13671367
SetHeaderVerbatim("header-lowercase", "value_lowercase").
13681368
SetHeader("header-lowercase", "value_standard")
13691369

1370-
assertEqual(t, "value_lowercase", strings.Join(r.Header["header-lowercase"], ""))
1371-
assertEqual(t, "value_standard", strings.Join(r.Header["Header-Lowercase"], ""))
1370+
assertEqual(t, "value_lowercase", strings.Join(r.Header["header-lowercase"], "")) //nolint
1371+
assertEqual(t, "value_standard", r.Header.Get("Header-Lowercase"))
13721372
}
13731373

1374-
13751374
func TestOutputFileWithBaseDirAndRelativePath(t *testing.T) {
13761375
ts := createGetServer(t)
13771376
defer ts.Close()

response.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) 2015-2020 Jeevanandam M ([email protected]), All rights reserved.
1+
// Copyright (c) 2015-2021 Jeevanandam M ([email protected]), All rights reserved.
22
// resty source code and usage is governed by a MIT style
33
// license that can be found in the LICENSE file.
44

resty.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) 2015-2020 Jeevanandam M ([email protected]), All rights reserved.
1+
// Copyright (c) 2015-2021 Jeevanandam M ([email protected]), All rights reserved.
22
// resty source code and usage is governed by a MIT style
33
// license that can be found in the LICENSE file.
44

@@ -14,7 +14,7 @@ import (
1414
)
1515

1616
// Version # of resty
17-
const Version = "2.6.0-dev"
17+
const Version = "2.6.0"
1818

1919
// New method creates a new Resty client.
2020
func New() *Client {

resty_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) 2015-2020 Jeevanandam M ([email protected]), All rights reserved.
1+
// Copyright (c) 2015-2021 Jeevanandam M ([email protected]), All rights reserved.
22
// resty source code and usage is governed by a MIT style
33
// license that can be found in the LICENSE file.
44

retry.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) 2015-2020 Jeevanandam M ([email protected]), All rights reserved.
1+
// Copyright (c) 2015-2021 Jeevanandam M ([email protected]), All rights reserved.
22
// resty source code and usage is governed by a MIT style
33
// license that can be found in the LICENSE file.
44

retry_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) 2015-2020 Jeevanandam M ([email protected]), All rights reserved.
1+
// Copyright (c) 2015-2021 Jeevanandam M ([email protected]), All rights reserved.
22
// resty source code and usage is governed by a MIT style
33
// license that can be found in the LICENSE file.
44

trace.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) 2015-2020 Jeevanandam M ([email protected]), All rights reserved.
1+
// Copyright (c) 2015-2021 Jeevanandam M ([email protected]), All rights reserved.
22
// resty source code and usage is governed by a MIT style
33
// license that can be found in the LICENSE file.
44

transport.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// +build go1.13
22

3-
// Copyright (c) 2015-2020 Jeevanandam M ([email protected]), All rights reserved.
3+
// Copyright (c) 2015-2021 Jeevanandam M ([email protected]), All rights reserved.
44
// resty source code and usage is governed by a MIT style
55
// license that can be found in the LICENSE file.
66

transport112.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// +build !go1.13
22

3-
// Copyright (c) 2015-2020 Jeevanandam M ([email protected]), All rights reserved.
3+
// Copyright (c) 2015-2021 Jeevanandam M ([email protected]), All rights reserved.
44
// resty source code and usage is governed by a MIT style
55
// license that can be found in the LICENSE file.
66

util.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) 2015-2020 Jeevanandam M ([email protected]), All rights reserved.
1+
// Copyright (c) 2015-2021 Jeevanandam M ([email protected]), All rights reserved.
22
// resty source code and usage is governed by a MIT style
33
// license that can be found in the LICENSE file.
44

util_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) 2015-2020 Jeevanandam M ([email protected]), All rights reserved.
1+
// Copyright (c) 2015-2021 Jeevanandam M ([email protected]), All rights reserved.
22
// resty source code and usage is governed by a MIT style
33
// license that can be found in the LICENSE file.
44

0 commit comments

Comments
 (0)