greeter_http.pb.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. // Code generated by protoc-gen-go-http. DO NOT EDIT.
  2. package v1
  3. import (
  4. context "context"
  5. json "encoding/json"
  6. common "git.ikuban.com/server/kratos-utils/common"
  7. http1 "git.ikuban.com/server/kratos-utils/http"
  8. binding "git.ikuban.com/server/kratos-utils/http/binding"
  9. reply "git.ikuban.com/server/kratos-utils/http/reply"
  10. base "git.ikuban.com/server/we-protobuf/api/base"
  11. errors "github.com/go-kratos/kratos/v2/errors"
  12. http2 "github.com/go-kratos/kratos/v2/transport/http"
  13. mux "github.com/gorilla/mux"
  14. status "google.golang.org/grpc/status"
  15. http "net/http"
  16. )
  17. // This is a compile-time assertion to ensure that this generated file
  18. // is compatible with the kratos package it is being compiled against.
  19. var _ = new(http.Request)
  20. var _ = new(json.Token)
  21. var _ = new(status.Status)
  22. var _ = new(context.Context)
  23. var _ = new(common.JWT)
  24. var _ = new(reply.SuccessReply)
  25. var _ = new(base.Html)
  26. var _ = new(errors.Error)
  27. var _ = binding.MapProto
  28. var _ = http1.ContentTypeHeader
  29. var _ = mux.NewRouter
  30. const _ = http2.SupportPackageIsVersion1
  31. type GreeterHandler interface {
  32. SayHello(context.Context, *HelloRequest) (*HelloReply, error)
  33. }
  34. func NewGreeterHandler(srv GreeterHandler, opts ...http2.HandleOption) http.Handler {
  35. h := http2.HandleOptions{
  36. Error: http1.ErrHandle,
  37. Encode: http1.EncodeResponse,
  38. Decode: http1.DecodeRequest,
  39. }
  40. for _, o := range opts {
  41. o(&h)
  42. }
  43. r := mux.NewRouter()
  44. r.HandleFunc("/helloworld/{name}", func(w http.ResponseWriter, r *http.Request) {
  45. var in HelloRequest
  46. if err := h.Decode(r, &in); err != nil {
  47. h.Error(w, r, err)
  48. return
  49. }
  50. if err := binding.MapProto(&in, mux.Vars(r)); err != nil {
  51. h.Error(w, r, err)
  52. return
  53. }
  54. next := func(ctx context.Context, req interface{}) (interface{}, error) {
  55. return srv.SayHello(ctx, req.(*HelloRequest))
  56. }
  57. if h.Middleware != nil {
  58. next = h.Middleware(next)
  59. }
  60. out, err := next(r.Context(), &in)
  61. if err != nil {
  62. errStatus := errors.FromError(err)
  63. if errStatus != nil {
  64. if errStatus.Reason != "" {
  65. fail := &reply.SuccessReply{
  66. Code: errStatus.GRPCStatus().Proto().Code,
  67. Message: errStatus.GRPCStatus().Message(),
  68. }
  69. var obj interface{}
  70. json.Unmarshal([]byte(errors.Reason(err)), &obj)
  71. fail.Data = obj
  72. w.WriteHeader(400)
  73. if err := h.Encode(w, r, fail); err != nil {
  74. h.Error(w, r, err)
  75. }
  76. return
  77. }
  78. }
  79. h.Error(w, r, err)
  80. return
  81. }
  82. success := &reply.SuccessReply{
  83. Code: 0,
  84. }
  85. if out != nil {
  86. success.Data = out
  87. }
  88. if err := h.Encode(w, r, success); err != nil {
  89. h.Error(w, r, err)
  90. }
  91. }).Methods("GET")
  92. return r
  93. }