GithubHelp home page GithubHelp logo

libraries's People

Contributors

aaomidi avatar coderholic avatar havendv avatar jhtimmins avatar kuntoaji avatar przmv avatar umanshahzad avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libraries's Issues

User-agent

The spec for the user-agent says it should be IPInfoClient/Language/Version. Is that version of the language or version of the API/wrapper-spec/something else? I'm guessing language?

So for Python 3.6 it would be IPInfoClient/Python/3.6

Standard Header/Footer for READMEs

Many users will be hearing about our service for the first time when they come across one of the libraries, so we should make sure we introduce the service, explain what we do and how to signup for a token etc. We can create a standard header and footer for the READMEs that we use across all libraries.

The Okta libs do this really well, with a getting started section etc https://www.npmjs.com/package/@okta/okta-auth-js

Some other good examples:

Bots

I'm a little bit lost on the bot behavior.

”The library should provide a middleware to detect if the traffic is coming from a suspected bot or a user"

Can someone explain how this works? If I'm making the generic Python wrapper that's initiating a request to the IPInfo API, it's not clear to me where a potential bot fits in.

License

It should be stated in the specs under which license(s) the libraries/packages/plugins must be released.

Also it must contain the requirements to the source code, e.g. LICENSE file, comments in the code files, statement in the README file, etc.

Notes on current guidelines

Thoughts on notes on https://github.com/aaomidi/ipinfo-wrapper-specs/blob/master/versions/01/GUIDELINES.md

Generally, the guidelines look great! They currently seem to be more focused towards an external audience, but I think it'd be easier for us to create internal focused guidelines for our own official libraries initially, and then create a modified version of that for an external audience after. It gives us less to worry about initially, will make it easier to make changes, and means we can publish public guidelines after we've learnt some lessons from building a few libraries.

The first obvious change based on that approach would be that we don't need to worry about a vendor, so the user agent can just be:

IPInfoClient/Language/Version

For caching I'd set the default to 1h instead of 1m (or perhaps even 24h), but it should definitely be easily configurable.

We should have generic filtering too, not just for bot traffic. We need to think about we're going to get all of attributes at request time (eg. where does the user agent come from). Maybe the filtering only makes sense for libraries for specific frameworks where we'll clearly have access to the useragent or a request object or something, rather than something like a Go library, where we can only expect the user to pass in an IP, and let them do fitlering themselves in the code?

Caching discussion

Discussion point: What level of caching implementation should we provide?

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.