request

in lib/anthropic/internal/transport/base_client.rb [433:461]


        def request(req)
          self.class.validate!(req)
          model = req.fetch(:model) { Anthropic::Internal::Type::Unknown }
          opts = req[:options].to_h
          Anthropic::RequestOptions.validate!(opts)
          request = build_request(req.except(:options), opts)
          url = request.fetch(:url)

          
          send_retry_header = request.fetch(:headers)["x-stainless-retry-count"] == "0"
          status, response, stream = send_request(
            request,
            redirect_count: 0,
            retry_count: 0,
            send_retry_header: send_retry_header
          )

          decoded = Anthropic::Internal::Util.decode_content(response, stream: stream)
          case req
          in { stream: Class => st }
            st.new(model: model, url: url, status: status, response: response, stream: decoded)
          in { page: Class => page }
            page.new(client: self, req: req, headers: response, page_data: decoded)
          else
            unwrapped = Anthropic::Internal::Util.dig(decoded, req[:unwrap])
            Anthropic::Internal::Type::Converter.coerce(model, unwrapped)
          end
        end