Coder Social home page Coder Social logo

api-lesson-seattle-ds-080519's Introduction

APIs Lesson

Students Will Be Able To:

  • Describe the client-server model and request-response cycle
  • Identify examples of clients and servers, both on their local computers and remotely connected
    • PostgreSQL is a server
    • psql in the command line is a client
    • psycopg2 in Python is a client
    • Jupyter Notebook is a server
    • Google Chrome (like all web broswers) is a client
  • Identify examples of requests and responses
  • Understand the basic concept of a web server, and the types of requests and responses it uses
  • Understand the difference between a request that returns HTML and an API request that returns JSON
    • "API" technically can mean a lot more things, but usually it means an HTTP (web) interface that returns JSON
  • Understand the basic pieces of making HTML and JSON requests
    • For simple requests, you only need 2 things: HTTP verb and URL
    • HTTP verb: this will almost always be GET, kind of like how a data scientist's SQL query will almost always be SELECT. But there are other verbs, including POST and PATCH, which are like INSERT INTO and UPDATE
    • URL: this is the string representing the location of the resource. It can also be called a "path", or an "endpoint"
  • Use a browser to make HTML and JSON requests
    • This just means typing the URL into the browser. It will always be a GET request.
    • The browser will show HTML or JSON depending on the URL. So, reddit.com shows you HTML, whereas reddit.com/.json shows you JSON.
  • Use Postman to make HTML and JSON requests
    • Postman has input fields where you can type the URL and select the HTTP verb from a drop-down
    • Remember that this is a good tool for exploration/figuring out how to use an API (better than Chrome), but it's not the final product
  • Practice reading someone else's Python code that uses the requests library
    • We walked through the Google Books example (see "Existing Code" section below)
  • Use Python requests library to make JSON requests
    • This looks like requests.get("http://api.open-notify.org/iss-now.json")
    • The HTTP verb is specified by the method name (.get for GET, .post for POST, etc.)
    • The URL is the first (and only required) parameter passed into the .get method
  • Practice reading the documentation for an API

Existing Code (google_books.py)

  1. Uses the Python requests library
  2. Uses the Google Books API
  3. Searches for author "Jake VanderPlas" (author of my go-to Python data science book)
  4. Prints out a list of book titles that match this query

Deliverables

  • [] Refactor the existing Google Books code so that it uses the params argument (we did not get to this in class)
  • Write new code in a new file that queries the NASA ISS API and prints out the current latitude and longitude
    • This is in APIs_exploratory_notebook.ipynb, plus some fun mapping stuff. You might need to run conda install ipyleaflet in the terminal to get it working. If you run it again, expect a different map, since the ISS is constantly moving very quickly!
    • Currently the code in the notebook doesn't do any error checking. That is pretty common for exploratory code in a notebook, but you almost always want to do error checking when you write actual code that uses an API

api-lesson-seattle-ds-080519's People

Contributors

hoffm386 avatar

Watchers

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

Forkers

dirkstrong1

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.