esapi.request.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. // Licensed to Elasticsearch B.V. under one or more contributor
  2. // license agreements. See the NOTICE file distributed with
  3. // this work for additional information regarding copyright
  4. // ownership. Elasticsearch B.V. licenses this file to you under
  5. // the Apache License, Version 2.0 (the "License"); you may
  6. // not use this file except in compliance with the License.
  7. // You may obtain a copy of the License at
  8. //
  9. // http://www.apache.org/licenses/LICENSE-2.0
  10. //
  11. // Unless required by applicable law or agreed to in writing,
  12. // software distributed under the License is distributed on an
  13. // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  14. // KIND, either express or implied. See the License for the
  15. // specific language governing permissions and limitations
  16. // under the License.
  17. package esapi
  18. import (
  19. "context"
  20. "io"
  21. "net/http"
  22. )
  23. const (
  24. headerContentType = "Content-Type"
  25. )
  26. var (
  27. headerContentTypeJSON = []string{"application/json"}
  28. )
  29. // Request defines the API request.
  30. //
  31. type Request interface {
  32. Do(ctx context.Context, transport Transport) (*Response, error)
  33. }
  34. // newRequest creates an HTTP request.
  35. //
  36. func newRequest(method, path string, body io.Reader) (*http.Request, error) {
  37. return http.NewRequest(method, path, body)
  38. }