Giter Club home page Giter Club logo

Comments (6)

pettermahlen avatar pettermahlen commented on August 17, 2024

A reference could be HttpUrl from OkHttp. Their choice was to separate the URL into a different type from the Request. Seems like introducing a similar type into Apollo might be good?

from apollo.

mattnworb avatar mattnworb commented on August 17, 2024

@pettermahlen I think that would be useful. I've wished a few times for something similar to a URIBuilder from Jersey or Http Client that was a bit more standard (especially when not using one of those libraries).

from apollo.

pettermahlen avatar pettermahlen commented on August 17, 2024

I'm thinking if the use case is HTTP urls, then perhaps using HttpUrl might be a good solution? Reading the HttpUrl (which is based on experiences from URL, URI and URIBuilder) javadocs, it's striking that creating such a class is a pretty significant effort. Duplicating that in Apollo seems a little wasteful if not strictly necessary.

from apollo.

mattnworb avatar mattnworb commented on August 17, 2024

I agree on avoiding duplication (or second efforts to create standards-correct URI builders). HttpUrl sounds good to me since it looks very standalone from the rest of okhttp 👍

from apollo.

pettermahlen avatar pettermahlen commented on August 17, 2024

So can we close this and recommend the use of this pattern:

  HttpUrl httpUrl = ... ;
  Request.forUri(httpUrl.toString());

It's maybe a bit dangerous given that the behaviour of toString() isn't defined in the javadocs. Also, that leaves us without a solution for Hermes URLs, but that's maybe less of a problem as query parameters aren't very commonly used with Hermes.

from apollo.

mattnworb avatar mattnworb commented on August 17, 2024

Sounds good!

from apollo.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.