Five Essential Tools for Building REST APIs

REST APIs are a great way to connect systems together. They are platform-independent and work on simple, well-established standards that are designed to support high performance, massive scale, and secure communication. This course presents a toolset for delivering better REST APIs that give clients what they need, run fast, scale well, and are easy to look after.
Course info
Rating
(335)
Level
Beginner
Updated
Dec 2, 2014
Duration
2h 56m
Table of contents
Collaborative Design
Testing
HTTP
Performance Testing
Monitoring
Summary
Description
Course info
Rating
(335)
Level
Beginner
Updated
Dec 2, 2014
Duration
2h 56m
Description

REST provides the foundations for how your API will run, but it gives you a lot of freedom in how you design and build it. This course covers tools which make it easy to ensure your API implementation is high quality and does what the clients need it to do. We cover the full delivery lifecycle, from tools which support collaborative design, through testing, performance testing, and monitoring the health of your API when it's live.

About the author
About the author

Elton is an independent consultant specializing in systems integration with the Microsoft stack. He is a Microsoft MVP, blogger, and practicing Technical Architect.

More from the author
Modernizing .NET Framework Apps with Docker
Intermediate
3h 42m
Dec 28, 2017
More courses by Elton Stoneman
Section Introduction Transcripts
Section Introduction Transcripts

Collaborative Design
Hi there. I'm Elton, and this is Five Essential Tools for Building REST APIs, a Pluralsight course which gives you a toolset that will help you deliver APIs more quickly, with better quality, and with more desirable features. This course is platform independent, so it doesn't matter whether you're building an API with Ruby on Rails, PHP, ASP. NET Web API, or Node, the tools we'll look at will all still apply and will help you to deliver a great product. We'll be looking at tools that help you in the different phases of delivering your API. In this first module, once we're done with the introductions, we'll look at collaborative design and tools for defining the shape of your API, documenting your interface, and even providing stub endpoints for you. Next, we'll look at functional testing and some simple tools that let you send requests into your API and analyze the traffic so when you're building the functionality, you can make sure that it works as expected and meets the agreed design. In module 3, we'll look at the most important tool in REST APIs, which is the delivery protocol, HTTP. We'll look at some specific areas of hosting APIs on the web to provide better performance, reliability, and security. When you've designed, built, and hosted your API, there are some fantastic tools for performance testing, which let you very easily run large- scale load tests to verify the performance of your API so you can be confident about how many clients you can support. In module 5, we'll look at monitoring tools that run with your API in production. These give you insight into the health of your service and will help you track down any issues that occur. In the last module, we'll summarize the course and will briefly look at other tools that can help you, like API management suites.

Testing
Hi there. I'm Elton, and this is the next module in Five Essential Tools for Building REST APIs where we'll look at tools for testing APIs, sending HTTP requests, and checking the response so you can test the API behaves as you expect. REST sits on top of HTTP, the transport protocol, which specifies what kind of data is being sent, and HTTP sits on top of TCP/IP, the network protocol which specifies how the HTTP content is physically spit up and sent on the wire. When you're building an API, you need to be able to test your API and see what's happening at these different levels. In this module, we'll see tools that let you do just that. We'll start with REST clients that you use to make requests to your API and see the response, moving down to web debuggers that let you see and modify the underlying communication, and finally with packet sniffers that show you the actual network traffic involved in your API calls. At the consumer level, HTTP is a pretty simple protocol. You build a request that consists of some headers and a payload. You send it to a URL with a method specifying what you want to do. The server builds a response which contains some headers and a payload and sends it back along with a status code saying how the request went. That's exactly what a browser does, and my favorite API testing tool, Postman, is an extension for the Chrome browser, so it's cross-platform. It's a simple tool to use, so we'll spend some time looking at what it can do, and then I'll highlight a couple of alternatives and move on to more detailed tools that let you dig a bit deeper into what's happening with your HTTP request.

Performance Testing
Hi there. I'm Elton, and this is the next module in Five Essential Tools for Building REST APIs where we'll look at performance testing our API with load tests tools. There are different flavors of performance tests, but they all have the basic principle of sending lots and lots of requests to your API to simulate heavy client load, seeing how your API copes, and using that information to design your production infrastructure and plan your operations. To generate enough load to stress your API, you need more than one machine. And not so long ago, you had to manually set up and coordinate multiple machines to send load at the same time with a master node to organize them and collect the results. Now there are some excellent cloud-based, load-testing tools, which do all the hard work for you and make it trivially easy to send thousands of requests per second to your API and stress your servers to the max. To see just how easy this is, we'll start straightaway with some load tests on my Spider Log API using my recommended load-testing tool, Loader. io. Loader has a web UI and an API for creating and running tests, so you can easily add it to your build and deployment pipeline and include a load test as part of a nightly build.

Monitoring
Hi there. I'm Elton, and this is the next module in Five Essential Tools for Building REST APIs where we'll look at monitoring your API with some tools that make it easy to see what's going on inside your API and help you diagnose problems. When you've designed and built your API, tested and load tested it, you deployed to the production environment, and then you should be able to forget all about it and focus on what you're going to build into the next release. But the reality is you can't do that. Hopefully, your API will live in production far longer than it spent in development, and running fulltime will almost certainly uncover problems that you didn't see during the build phase. Maybe there are bugs in _____ scenarios that weren't tested, so users are getting 500 errors from API calls that should be working perfectly. Or maybe a new deployment has impacted performance for everyone. Whether you're in a dev ops role or providing backup for a dedicated support team, you need to be able to see what's happening inside your API so you can diagnose problems, and monitoring tools will help you find and fix issues before you start losing customers. There's a growing industry providing services which give you insight into what's happening with your API. They've grown from the explosion in cloud hosting and the demand for consistent information across multiple platforms. And because of that, they apply just as well to on-premise or IAS solutions as they do for hosted path solutions. These tools work by collecting information from your API instances and forwarding it to a central location where it's analyzed and presented to you in a useful way. In this module, we'll look at hosted services, logging, and instrumentation.

Summary
Hi there. I'm Elton, and this is the last module in Five Essential Tools for Building rest APIs. In this module, we'll look at how the tools we've seen fit into your API delivery process and why it is that they make good delivery better. We'll cover one more type of tool that doesn't quite fit the essential label, and I'll introduce the EssentialRestTools. net reference website. Whatever process you use to deliver projects, Waterfall, Scrum, Kanban, none of the above, there are phases to their delivery, and they're all helped by the tools that we've seen in this course. Typically, your delivery process will have a design phase where you work with the stakeholders to agree what's going to be delivered, a build phase where you implement the functionality, a test phase where you prove it does what it should, and the run phase where you push out your new release to the live environment. Whether those phases are all in one two-week sprint or in a six-month release program, the tools in this course help you with them all.