REST APIs Part 2 - Making REST API Calls With Postman PDF
REST APIs Part 2 - Making REST API Calls With Postman PDF
Network Programmability Basics/Programming Fundamentals/REST APIs Part 2: Making REST API Calls with Postman
Network Programmability Basics Modules
• Introduction: How to be a Network Engineer in a Programmable Age
• Programming Fundamentals
• Network Device APIs
• Network Controllers
• Application Hosting and the Network
• NetDevOps
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Network Programmability Basics: The Lessons
Module: Programming Fundamentals
• Data Formats: Understanding and using JSON, XML and YAML
• APIs are Everywhere... but what are they?
• REST APIs Part 1: HTTP is for more than Web Browsing
• REST APIs Part 2: Making REST API Calls with Postman
• Python Part 1: Python Language and Script Basics
• Python Part 2: Working with Libraries and Virtual Environments
• Python Part 3: Useful Python Libraries for Network Engineers
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Code and Develop Along
• Get the Code!
• github.com/CiscoDevNet/netprog_basics
• Setup Lab Prerequisites
• Each lab includes a README with details
• Access to Infrastructure
• DevNet Sandbox
• Specifics in lab README
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Topics to Cover
• Why Postman and How to
Get it?
• Sending an API Request
• API Collections
• Using Environments
• Postman to Code!
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Why Postman and How to
Get it?
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Postman: Powerful but Simple REST API Client
• Quickly test APIs in GUI
• Save APIs into Collections for
reuse
• Manage multiple environments
• Auto generate code from API
calls https://www.getpostman.com
• Standalone Application or
Chrome Plugin
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Sending an API Request
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
URI
Manage request
authorization,
headers, and Easily input Headers
data (body) with auto-completion
Response Body
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Constructing a POST Request
• Choose method
• Enter URI
• Configure headers and
authentication
• Provide data
• Send and verify status
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
API Collections
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Save and Organize API Calls into Collections
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Using Environments
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Variables Make Requests Reusable and Flexible
• Never good to hardcode details
• What if you want to connect to
different host?
• What if credentials change?
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Variables Make Requests Reusable and Flexible
• Variables References
• {{apic}}
• {{username}}
• {{password}}
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Managing Environments
• Create any number of
environments needed
• Change between environments
with drop down list
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Managing Environments
• Add as many variables as
needed
• Reference anywhere with
{{variable name}} syntax
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Setting Environment Variables Dynamically
Login Response
• What about when info from one
request is needed in another?
• Manually copying/pasting slow
and error prone
• Manually updating environment Device List Request
variables is slow and awkward
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
“Tests” Enable Dynamic Environment Variables
• Each API Request offers both
pre and post actions
• Pre -> Pre-request Script
• Post -> Tests
• Written in JavaScript
Response Body
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Demo Time!
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Postman to Code!
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
You’ll eventually want to write some code…
• Postman great for testing and
validating APIs
• But it’s about atomic actions
• Business Logic, stringing APIs
together, etc all need code
• Jumpstart with auto-generated
code by Postman
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
You’ll eventually want to write some code…
• Many, many options for
languages available
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Full API Request to Code!
• Headers, payload data, and URI
all included
• Environment variables are
translated
• Great starting point, but expect
to edit and update
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Summing up
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Review
• Understand what Postman offers for API developers
• Learned how to send basic API requests
• Save API requests into Collections to re-use later
• Make APIs more modular and powerful with Environments
• Auto-generate code in many languages from an API call
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Call to Action!
• Complete the full Network
Programmability Basics Course
• Run the examples and
exercises yourself!
• Bonus Examples!
• Join DevNet for so much more!
• Learning Labs
• Development Sandboxes
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Got more questions? Come find me!
[email protected]
@hfpreston
http://github.com/hpreston
@CiscoDevNet
facebook.com/ciscodevnet/
http://github.com/CiscoDevNet
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Confidential