auto commit

master
李伟乐 11 months ago
parent f0c0d19fe4
commit 47eb8c3756
  1. 3
      app.go
  2. 1
      options.go
  3. 7
      transport/http/client.go
  4. 9
      transport/http/codec.go
  5. 1
      transport/http/server.go

@ -3,7 +3,7 @@ package kit
import ( import (
"context" "context"
"errors" "errors"
"fmt" "git.diulo.com/mogfee/kit/core/logx"
_ "git.diulo.com/mogfee/kit/encoding/form" _ "git.diulo.com/mogfee/kit/encoding/form"
_ "git.diulo.com/mogfee/kit/encoding/json" _ "git.diulo.com/mogfee/kit/encoding/json"
_ "git.diulo.com/mogfee/kit/encoding/xml" _ "git.diulo.com/mogfee/kit/encoding/xml"
@ -47,7 +47,6 @@ func New(opts ...Option) *App {
for _, opt := range opts { for _, opt := range opts {
opt(&o) opt(&o)
} }
fmt.Println(o.id)
if o.logger != nil { if o.logger != nil {
logx.SetLogger(o.logger) logx.SetLogger(o.logger)
} }

@ -2,6 +2,7 @@ package kit
import ( import (
"context" "context"
"git.diulo.com/mogfee/kit/core/logx"
"git.diulo.com/mogfee/kit/registry" "git.diulo.com/mogfee/kit/registry"
"git.diulo.com/mogfee/kit/transport" "git.diulo.com/mogfee/kit/transport"
"net/url" "net/url"

@ -6,6 +6,7 @@ import (
"crypto/tls" "crypto/tls"
"fmt" "fmt"
"git.diulo.com/mogfee/kit/encoding" "git.diulo.com/mogfee/kit/encoding"
"git.diulo.com/mogfee/kit/errors"
"git.diulo.com/mogfee/kit/internal/host" "git.diulo.com/mogfee/kit/internal/host"
"git.diulo.com/mogfee/kit/internal/httputil" "git.diulo.com/mogfee/kit/internal/httputil"
"git.diulo.com/mogfee/kit/middleware" "git.diulo.com/mogfee/kit/middleware"
@ -259,7 +260,7 @@ func (client *Client) do(req *http.Request) (*http.Response, error) {
node selector.Node node selector.Node
) )
if node, done, err = client.selector.Select(req.Context(), selector.WithNodeFilter(client.opts.nodeFilters...)); err != nil { if node, done, err = client.selector.Select(req.Context(), selector.WithNodeFilter(client.opts.nodeFilters...)); err != nil {
return nil, errorx.ServiceUnavailable("NODE_NOT_FOUND", err.Error()) return nil, errors.ServiceUnavailable("NODE_NOT_FOUND", err.Error())
} }
if client.insecure { if client.insecure {
req.URL.Scheme = "http" req.URL.Scheme = "http"
@ -306,13 +307,13 @@ func DefaultErrorDecoder(ctx context.Context, res *http.Response) error {
data, err := io.ReadAll(res.Body) data, err := io.ReadAll(res.Body)
defer res.Body.Close() defer res.Body.Close()
if err == nil { if err == nil {
e := new(errorx.Error) e := new(errors.Error)
if err = CodecForResponse(res).Unmarshal(data, e); err == nil { if err = CodecForResponse(res).Unmarshal(data, e); err == nil {
e.Code = int32(res.StatusCode) e.Code = int32(res.StatusCode)
return e return e
} }
} }
return errorx.Newf(res.StatusCode, errorx.UnknownReason, "").WithCause(err) return errors.Newf(res.StatusCode, errors.UnknownReason, "").WithCause(err)
} }
func CodecForResponse(r *http.Response) encoding.Codec { func CodecForResponse(r *http.Response) encoding.Codec {
codec := encoding.GetCodec(httputil.ContentSubtype(r.Request.Header.Get("Content-Type"))) codec := encoding.GetCodec(httputil.ContentSubtype(r.Request.Header.Get("Content-Type")))

@ -4,6 +4,7 @@ import (
"bytes" "bytes"
"fmt" "fmt"
"git.diulo.com/mogfee/kit/encoding" "git.diulo.com/mogfee/kit/encoding"
"git.diulo.com/mogfee/kit/errors"
"git.diulo.com/mogfee/kit/internal/httputil" "git.diulo.com/mogfee/kit/internal/httputil"
"git.diulo.com/mogfee/kit/transport/http/binding" "git.diulo.com/mogfee/kit/transport/http/binding"
"github.com/gorilla/mux" "github.com/gorilla/mux"
@ -38,18 +39,18 @@ func DefaultRequestQuery(r *http.Request, v any) error {
func DefaultRequestDecoder(r *http.Request, v any) error { func DefaultRequestDecoder(r *http.Request, v any) error {
codec, ok := CodeForRequest(r, "Content-Type") codec, ok := CodeForRequest(r, "Content-Type")
if !ok { if !ok {
return errorx.BadRequest("CODEC", fmt.Sprintf("unregister Content-Type: %s", codec)) return errors.BadRequest("CODEC", fmt.Sprintf("unregister Content-Type: %s", codec))
} }
data, err := io.ReadAll(r.Body) data, err := io.ReadAll(r.Body)
if err != nil { if err != nil {
return errorx.BadRequest("CODEC", err.Error()) return errors.BadRequest("CODEC", err.Error())
} }
r.Body = io.NopCloser(bytes.NewBuffer(data)) r.Body = io.NopCloser(bytes.NewBuffer(data))
if len(data) == 0 { if len(data) == 0 {
return nil return nil
} }
if err = codec.Unmarshal(data, v); err != nil { if err = codec.Unmarshal(data, v); err != nil {
return errorx.BadRequest("CODEC", err.Error()) return errors.BadRequest("CODEC", err.Error())
} }
return nil return nil
} }
@ -72,7 +73,7 @@ func DefaultResponseEncoder(w http.ResponseWriter, r *http.Request, v any) error
return err return err
} }
func DefaultErrorEncoder(w http.ResponseWriter, r *http.Request, err error) { func DefaultErrorEncoder(w http.ResponseWriter, r *http.Request, err error) {
se := errorx.FromError(err) se := errors.FromError(err)
codec, _ := CodeForRequest(r, "Accept") codec, _ := CodeForRequest(r, "Accept")
body, err := codec.Marshal(se) body, err := codec.Marshal(se)
if err != nil { if err != nil {

@ -4,6 +4,7 @@ import (
"context" "context"
"crypto/tls" "crypto/tls"
"errors" "errors"
"git.diulo.com/mogfee/kit/core/logx"
"git.diulo.com/mogfee/kit/internal/endpoint" "git.diulo.com/mogfee/kit/internal/endpoint"
"git.diulo.com/mogfee/kit/internal/host" "git.diulo.com/mogfee/kit/internal/host"
"git.diulo.com/mogfee/kit/internal/matcher" "git.diulo.com/mogfee/kit/internal/matcher"

Loading…
Cancel
Save