Coder Social home page Coder Social logo

face08 / apollo-client Goto Github PK

View Code? Open in Web Editor NEW

This project forked from apollographql/apollo-client

0.0 1.0 0.0 4.89 MB

:rocket: A fully-featured, production ready caching GraphQL client for every server or UI framework

Home Page: http://dev.apollodata.com/

License: MIT License

JavaScript 0.67% TypeScript 99.07% Shell 0.26%

apollo-client's Introduction

Apollo Client is a fully-featured caching GraphQL client with integrations for React, Angular, etc. It allows you to easily build UI components that fetch data via GraphQL. To get the most value out of apollo-client you should use it with one of its view layer integrations.

To get started with the React integration go to our React Apollo documentation website.

Apollo Client also has view layer integrations for all the popular frontend frameworks. For the best experience make sure to use the view integration layer for your frontend framework of choice.

Apollo Client can be used in any JavaScript frontend where you want to use data from a GraphQL server. It's:

  1. Incrementally adoptable, so that you can drop it into an existing JavaScript app and start using GraphQL for just part of your UI.
  2. Universally compatible, so that Apollo works with any build setup, any GraphQL server, and any GraphQL schema.
  3. Simple to get started with, you can start loading data right away and learn about advanced features later.
  4. Inspectable and understandable, so that you can have great developer tools to understand exactly what is happening in your app.
  5. Built for interactive apps, so your users can make changes and see them reflected in the UI immediately.
  6. Small and flexible, so you don't get stuff you don't need. The core is under 25kb compressed.
  7. Community driven, Apollo is driven by the community and serves a variety of use cases. Everything is planned and developed in the open.

Get started on the home page, which has great examples for a variety of frameworks.

Installation

npm install apollo-client graphql-tag --save

To use this client in a web browser or mobile app, you'll need a build system capable of loading NPM packages on the client. Some common choices include Browserify, Webpack, and Meteor 1.3.

NEW: Install the Apollo Client Developer tools for Chrome for a great GraphQL developer experience!

Usage

If you know you want to use the core apollo-client package you can get started by constructing an instance of the core class ApolloClient with a network interface created by the createNetworkInterface function like so:

import ApolloClient, { createNetworkInterface } from 'apollo-client';
import gql from 'graphql-tag';

const client = new ApolloClient({
  networkInterface: createNetworkInterface({
    uri: 'https://graphql.example.com',
  }),
});

Replace https://graphql.example.com with your GraphQL APIs URL and you’re off to the moon!

To execute a query with your client you may now call the client.query method like this:

client.query({
  query: gql`
    query TodoApp {
      todos {
        id
        text
        completed
      }
    }
  `,
})
  .then(data => console.log(data))
  .catch(error => console.error(error));

Now your client will be primed with some data in its cache. You can continue to make queries, or you can get your client instance to perform all sorts of advanced tasks on your GraphQL data. Such as reactively watching queries with watchQuery, changing data on your server with mutate, or reading a fragment from your local cache with readFragment.

To learn more about all of the features available to you through the apollo-client package be sure to read through the apollo-client API reference.

Learn how to use Apollo Client with your favorite framework


Contributing

Build status Build status Coverage Status

Read the Apollo Contributor Guidelines.

Running tests locally:

# nvm use node
npm install
npm test

This project uses TypeScript for static typing and TSLint for linting. You can get both of these built into your editor with no configuration by opening this project in Visual Studio Code, an open source IDE which is available for free on all platforms.

Important discussions

If you're getting booted up as a contributor, here are some discussions you should take a look at:

  1. Static typing and why we went with TypeScript also covered in the Medium post
  2. Idea for pagination handling
  3. Discussion about interaction with Redux and domain vs. client state
  4. Long conversation about different client options, before this repo existed

apollo-client's People

Contributors

abhiaiyer91 avatar amandajliu avatar bloojeans avatar calebmer avatar cesarsolorzano avatar dahjelle avatar davidwoody avatar drager avatar dxcx avatar edvinerikson avatar greenkeeper[bot] avatar greenkeeperio-bot avatar happylinks avatar helfer avatar jnwng avatar johnthepink avatar kamilkisiela avatar ksmth avatar machard avatar martijnwalraven avatar michaeldeboey avatar mquandalle avatar poincare avatar pseudoramble avatar renovate[bot] avatar rricard avatar shadaj avatar slava avatar srtucker22 avatar tmeasday avatar

Watchers

 avatar

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.