summaryrefslogtreecommitdiff
path: root/service/http/response.go
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2021-01-13 07:07:16 +0000
committerGitHub <[email protected]>2021-01-13 07:07:16 +0000
commitf18e7f6920590ee6f2e59be508518b70a4611638 (patch)
tree2f80c427e740c2c6f7f2a47be2b869b6d9847e58 /service/http/response.go
parent5dc83ef5eee77f4d1ef557e5f8b566e75892680d (diff)
parentbbfcd4fb6eb138c616dab01ea610fbf6ed15985b (diff)
Merge #472
472: feat(http): Distinct app and internal error codes in the handleError function r=48d90782 a=48d90782 This PR introduces distinct error codes for the app and internal RR errors. Errors: ```go roadrunner.ErrNoAssociatedPool roadrunner.ErrAllocateWorker roadrunner.ErrWorkerNotReady roadrunner.ErrEmptyPayload roadrunner.ErrPoolStopped roadrunner.ErrWorkerAllocateTimeout roadrunner.ErrAllWorkersAreDead ``` now associated with the internal error codes. All other errors are application errors. Some types of errors are impossible to distinguish in the RR1, for example `json.Unmarshall` internal error or similar. The `.rr.yaml` now contain two more options for the errors. ```yaml http: internalErrorCode: 502, appErrorCode: 502 ``` Default behavior unchanged (500 error code as before), but now might be overridden. closes #471 Co-authored-by: Valery Piashchynski <[email protected]>
Diffstat (limited to 'service/http/response.go')
-rw-r--r--service/http/response.go7
1 files changed, 4 insertions, 3 deletions
diff --git a/service/http/response.go b/service/http/response.go
index f34754be..a2540edf 100644
--- a/service/http/response.go
+++ b/service/http/response.go
@@ -5,11 +5,12 @@ import (
"net/http"
"strings"
- json "github.com/json-iterator/go"
+ j "github.com/json-iterator/go"
"github.com/spiral/roadrunner"
)
+var json = j.ConfigCompatibleWithStandardLibrary
// Response handles PSR7 response logic.
type Response struct {
@@ -26,8 +27,8 @@ type Response struct {
// NewResponse creates new response based on given rr payload.
func NewResponse(p *roadrunner.Payload) (*Response, error) {
r := &Response{body: p.Body}
- j := json.ConfigCompatibleWithStandardLibrary
- if err := j.Unmarshal(p.Context, r); err != nil {
+
+ if err := json.Unmarshal(p.Context, r); err != nil {
return nil, err
}