Coding 101 Introduction to REST APIs

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
morning I love that one everyone's head pops up all right day four is it right of Cisco live welcome welcome welcome to the definite zone hi my name is Matt DiNapoli are you guys all doing this morning good yeah excellent all right I'm doing okay I'm a little little under the weather you can hear them a little sick but we'll make do I think you guys will find this interesting before I get started I have a WebEx running if you guys want to pop onto that if you want to follow along I it makes it easy for me to share links or text with you guys depending on what we do you don't have to follow along but do you find this a little helpful so go ahead and try and hop on the WebEx and I'm sharing my screen too so you can look at your laptop while you're hearing me talk if you want to do that I'll give you guys a second to get on there that's already crowded this morning see people looking at the link in some away all right just one more time at cisco webex comm / meet / m de na pol and then you could join the WebEx and I can share some links with you so let's get started we're going to walk through and we're going to talk about rest api's if you spend any time in the definite zone this week you will probably have heard it a million times I'm going to you may have learned a little bit about what it is I'll get a little more in depth about how they actually work what it actually means what's that that what you wanted okay thankful we'll get into REST API basics we'll talk about really what makes up each part and piece for you to make an API call and then we'll do a little bit of a demo with Cisco spark and you guys which should be able to follow along if you want to if you want to get queued up for that you can use developer Docs cisco spark comm log in there while I'm talking and then the other thing is actually will well before we before we jump out of ourselves we'll do the little introduction so this coding 101 for we've designed these classes to be accessible to people who have not been to have not ever been exposed to coding or haven't found it that interesting or have it needed to do it with their jobs and so we designed them for that it's also for new coders software development changes very rapidly methodologies change very rapidly the way you do stuff changes very rapidly so any way you can stay on top of that is good so I've been a software developer for you know 13 14 years now and the way I do thinks today is very different than the way things the way I've done things in the past I hadn't used rest api's up until maybe three years ago so a lot of this was new to me as well it's particularly of interest I think with network program ability for net operations engineers which I'm assuming are a lot like yourself and then it's also helpful for DevOps for varying reasons although if you're in DevOps and you don't know what a REST API is you're probably not that good at your job so that's what this is for so don't be intimidated I think we do a good job walking through this stuff piece by piece if you want to code along and I'll put this link in the share I use what's called a rest client oh this one in particular we use is postman postman is just one of the one of many rest clients that we use and you'll see why they're useful but if you want to follow along with me I'll be using that pretty heavily during the demo I'm going to put that in the in the chat so you guys don't have to type it out but it's HTTP GET postman comm and it's a Chrome extension Google Chrome extension that you can use again all the stuff that we go through in coding 101 102 some of the other coding classes it's all covered in Learning Labs we have about 20 kiosks over there that go through all of the contents that we talked about here step by step sometimes it is helpful to have someone talk you through it and that's all fine and good but if you're sitting here going I just want to listen but then I'll go and work on it how do I work on it on my own you would do that over at the Learning Labs so that's at Learning Labs doc Cisco comm we have a whole breadth of courses start at 101 and then we go all the way through I guess 207 I'm not sure with 207 does but we go through what rest api's are a different products rest api so we're going to look at SPARC today we could be talking about 8:00 p.m. it introduces you to coding with Python and then walks you through being able to do things like parse JSON which we'll talk talk about JSON in a minute while using Python so very helpful to get you guys started in understanding some scripting automation in Python so that's learning labs that's Eska calm as well all right actually get into the I was a little admin I guess what is an API what does API stand for it's an application programming interface let me move the window out of the way here the API is eight guys have been around as as long as computers have been around for the most part because systems need to talk to each other very quickly realize that that was the case and so an API is a way for two systems to talk to each other so if you think about you interact with the computer through the keyboard with the mouse you interact with the browser this is this is a definition of that but for computers for systems to talk to each other so but because they're not as smart as we are there has to be a set of rules defined on each side for either to provide a service and/or do consume a service some common 8 API types we're really going to only talk about rest because that seems the way to be the way that things are going it's easy to use it's easy to understand it uses protocols that are well known and well defined its stance for representational state transfer it communicates over HTTP so the same protocol that you guys used to access your web browsers or websites it uses common HTTP verbs and we'll see what that means when we do our demos get post put delete and then it allows you to depending on the service that allows you to do some back data in different formats if necessary there might be situations where you need to use JSON versus XML or vice-versa some other API is right as restless coming into fashion soap is going out the door soap is a similar API but it stands for simple object access protocol the challenge with soap is that it requires a lot of processing overhead on one side to be able to use it and the definitions of the protocol are a little bit challenging sometimes a little bit too hard to to implement so that's like that's like api's have been moving in the direction of rest and then we could have some language based api's and these kind of fond to the sdk realm of you might have a application that only supports a java package and so you might build out that API in Java or Python or C depending on the application the API itself will define that and so you if you want to use that API you'd have to follow suit most of those if there are language specific a very specified for a particular application and not as wide-ranging that gets me to the point of what is so great about rest you're going to see a pattern here so in this instance we're going to see a little demo about using the github API if you're not familiar with github it's a essentially a code repository code management system and it's publicly available we use a lot about a lot of developers just use a lot it's a pretty common collaboration tool for code sharing but anyway it has AP is available to arrest API is available to it and you can access those API through any platforms you can do is you can build applications in mobile you can build applications on a web service you can build applications on native desktop leveraging REST API s and that was that's what makes them so useful and the nice thing about it is once you start to learn about one REST API it's very easy to learn about other REST API very seen you know you see the same pattern now one service is obviously going to provide different information than another github is going to tell us about our repositories and users and who's able to access what kind of code but if we're talking about Cisco spark it's going to be rooms memberships messages so obviously the API is tied to the to the actual application and what it provides and just to drive the point home our a pickie m controller also has REST API s and it's going to provide information about hosts network devices and users but all in the same format you're going to consume that API in the similar way as you would for spark as you would for github make sense okay cool so how does it work I didn't call I didn't simple slide down something that was super complicated this is how it works so your client your application makes a request depending on the API that's necessary if you're doing a get you're asking for information if you're doing a post you're going to be adding information into that service we're actually going to see a couple of examples of those a put is usually used to edit a record and then if you're going to do a delete obviously you're going to be removing something from that service makes the request over HTTP goes to that service and that service does something it could be going to get hub and asking for repositories and github will say do a query and then send that information back or let's say we're creating a room and spark a spark we'll go create that room and send something back now how it does that something we don't really care we just have to trust and assume that that's something will happen the way we wanted to provided that we made that API call correctly in the documentation and I'll get into talk about the documentation as well will tell us how to do that correctly now assuming everything goes well we will get a response back in a data format usually and most of what you will see in the definite zone will be JSON so we'll talk a little bit about JSON in a minute could see XML could see text and then that goes back to the client now what happens after that gets back to the client is up to whoever wrote the application it could be a script like so for example for Learning Labs I needed to query all the data that all the Learning Labs that get done at the end of Berlin so I had to write a script that pulls that information down for a certain date and dump that somewhere end up just writing it to a CSV file because I liked up for some reason like to use Excel to make spreadsheets so but I needed to query those api's and I chose to put that into a CSV file I could have build a web app I could have emailed them to somebody but it's whatever you want to do on that client side so what is it a rest work request to look like that a rest request you can say that three times fast what do you need to know so the first part of it it's into URL call the first part of it is the server the second part of it is resources and the documentation will tell you what those resources will be and then you have query parameters so in this instance the server will be the Google Maps API and then it tells us that to get the fork content back in JSON we have to go through and put that that URL and then that format and then excuse me if we want to San Jose address for Cisco's is headquartered we put in the address a and Jose in the parameters now let's actually run this one because I think that that's fun to kind of see the difference between API calls you can actually run API calls in your browser if you want to start playing with them let's see here see if I did this one yeah yeah we had this one already so you'll notice you guys can see that the URL that I said I said slash XML instead of slash San Jose or this flex and as a flashy JSON I needed more coffee this morning and if we go to change it to JSON it'll give me that same content back in in JSON versus XML now this is a good lead-in to the difference between JSON and XML so we'll notice if we look at this we have address components long name short may name types this is these are values that are available for the content that we asked for if we look at the XML that came back it's the same data it's just formatted in XML now depending on what you're comfortable with or what the application provides you could use either one for this particular instance XML you can see provides a little more overhead JSON is becoming more and more popular and actually I can't think of a an API I don't use it doesn't bring back content in JSON because it's very easy to parse and there particularly in Python what we used demo a lot of our cesare stuff there are some libraries that make it very easy to pull that content out of the data set that comes back so you can see it's easier to read and easier to parse now depending you might use XML if you need more data definitions so XML has a lot of opportunity to fill in some metadata and natural beaut that you don't get with JSON so but they're all just data formats so don't necessarily you hadn't heard of JSON before there it is you've heard of it no you're an expert in it are there any questions feel free we have a mic you can ask out of mind Oh getting back to the rest request with the anatomy of it we have to send headers depending on the API we might have to tell it that we want JSON back versus XML now this particular API allowed us to put it in the URL some API is require that you send it into a better content type you might also need to send an authorization key it's actually very common to have access this API is open to the public it doesn't require any authorization not all api's are like that most api's requires some level of security and actually do a discussion about that at noon here so if you are interested in more details about API security please come to that and then the action and then so I talked about that already get is to retrieve data post this to create a new record put stop data record and delete is to get rid of something now if we run an API call some codes will come back and this will happen in code that will see this happen in our rest client and those codes tell us something if everything is 200 that's okay that's good if it's a 400 usually it means that you or your client application have made a mistake you miss form the URL you're missing a header if you're doing a post the content that you send isn't formatted properly so usually if you get a 400 back it's something that you can probably fix and then on the other side of that error 500s and that means something's going on on the server if the API is well defined and well implemented then you'll get some kind of message back from that API saying this is not happening as I expected here's how we need to fix it or our services down or some reason why you're able to do that nothing that's not great then you'll get a generic error and you'll scratch your head and go I don't know what's going on I'll come back to it later but usually those words what those codes kind of stand for we'll see we'll see a number of 401 if you come to that noon class because then I show you guys what happens if you're not authorized versus if you are authorized to use the API and then again I talked about the content coming back in different formats I was jumping all over the place sorry we already covered that so you don't have to worry about this stuff so you talked about some generic ideas about what REST API czar the anatomy of them the data formats that can come back but now we need to talk about where does the information come back or where do you find the information needed for that request how did I know for the Google Maps API how to format that URL and I'm sure your guys are going to figure it out that's the documentation I cannot stress to you enough and I say the sentence every time I give this talk the API documentation is the most important thing I've worked with api's that have been well-documented I've worked with api's that have not been well documented and the difference in the amount of time that I've spent on working with those API is very clear I have some api's that I work with a lot that I wish the documentation was better and I've had to learn by trial and error how to work around the documentation but if the documentation is good you should be able to use the REST API in a matter of minutes and so it's very important that the API documentation be sound and proper so let's jump jump into a quick demo with postman you know what yeah let's let's talk about this so I'm going to go through the github API and get up has a pretty good set of documentation it tells us about the current version versioning is actually a tricky part of a REST API so you have these scenarios where developers are building applications against say the current version today's version two you build this application against version two everything's working fine and good we spend a week building your application and it's running in a production environment well now version three comes out and yeah you could upgrade to version 3 but you know you don't have time for it yet you don't want to but you want your application to still run in a cloud services environment it's usually nice and it's something that has become a industry kind of it's an unwritten rule that you version your API and so we will see all this one's version three we will see that a lot of times of one of the parts of the endpoints will be the version so V 3 V 1 V 2 so that you don't necessarily at that moment in time have to update your application to do that his version 2 version it could be the data formats come back differently or they provide different endpoints for you to access so it'll tell you about the current version it will tell you the schema how that JSON data is going to come back so if you're writing an application for particularly pulling in information from github you know how to parse that information out let's see what else one of the bigger things that that I think and I noted this yesterday it should be I think it should be number one is authentication I think the first thing you have to do is be able to access the API so that's usually the hardest thing for people to get over is to figure out how to how to access that and then it also gives you depending on if it's a public service or a paid for service you might see information about pagination and rate rate limiting because these are these api's are going against services that could be being used by millions of people at the same time and so to prevent from things like DDoS attacks they through authentication and access force people to only be able to make certain calls at a time or only be able to pull back certain amounts of data at a time so that's at the bottom there we see pagination and limiting learning questions on that make sense right so let's jump over I don't like going through these slides we're going to actually look at this API make this a little bit bigger and if you want to try and run this yourself we have everything collected into what's left it's called a collection it's some with or with the rest client like this you tend to kind of run API calls over and over again and you don't want to type those out every time so they put in some nice caching tools in in here and also allow you to collect things that you might use in a demo so I'm going to actually share this particular one all right so if you guys want to follow along with these exact same API calls that I'm going to be using I will put that in the chat and I'll show you guys how to import that so copy this link don't actually well you can click on it and see what it looks like but what you want to do is actually copy the link and then in postman if you want to import it there's a button in the upper left corner says import and then the last or the third from the left its import from link and what you're gonna want to do is copy that in I'm going to get in message saying I already have it but I'll say import and then you'll get those API calls that we're going to work through here and then you don't have to type them out so that's nice so the first one we're going to look at is this a github call I'm going to ask for the repos under the Cisco dev net folder cisco dev net if you guys are are interested in this we have probably a few hundred repositories now of code samples coding our coding samples for the Learning Labs gang models for rest comps anything you can think of anything that we need to get out to the public as far as code samples are concerned it's going to be in the Cisco dev net repo so go ahead and take a look at that at some point but anyway actually I'll show you guys where that content is and then you can see how the API correlates to that particular space so if we go to github.com slash cisco deb net and don't want the audio connection you can see all the popular pinned repositories that we have up there and I think we're getting more you will see spark in a minute but you know we put some of our chat box there demo chat box that we work with up there the code that manages the learning lab is there or the traine learning lab is there so feel free to check that out but you might have a need at some point maybe not you but maybe your application developers or maybe you're managing a team of developers and they want to manage all of their content all their code in github that you guys want to do something where anytime a new version is posted to that repo it sends a message to spark well first of all you have to make sure that you're monitoring the API for github and so you might want to pull those repos down every few minutes or something like that you would do something like this see if those repos change and then I'll give us information back about that particular repository the URLs to access it how to get the followers let's see stars if it's private or not so it gives us all this information about every repository the ID what's in it and so very useful information coming back in this API but that was pretty pretty easy this is a pretty easy example because we didn't have to authenticate we didn't have to spend any sending any special headers this is publicly accessible information I do want to point out when working with postman you have your different methods available here the ones we're going to focus on are get post put in delete again getting data is grabbing that information from that service and that's what we did here pretty straightforward right all right cool all right talk about JSON feel free to try it I sent you the postman collection all right I a rest authentication a little bit I'll get into these three specific ways to authenticate a REST API we're going to see one for spark or actually we'll see kind of a modified version for spark when we do our demo but just a real quick note there are three methods that you'll come across at least in the dev net zone they're more that are out there but the ones that we've seen more and more often are basic HTTP it's a it's a base64 encoded string of a username and password that's already set up on that service and then in a token service you essentially have some credentials that are provided you ask the service for a token based on the credentials that you send and then you use that token that comes back to make each API call and then finally a off which is becoming the one that's more standardized it hasn't been ratified from what I understand yet go off to excuse me but it is the one that more of our cloud services are using anytime you see can I log in with your Facebook credentials or Google credentials or something like that that's a walk to so I just wanted to make a quick note on that I'll get into more depth on that at the noon session so feel free to come by that if that is of interest to you okay we're going to skip all these slides and actually do something that it's cool that you can actually see it in action so there we go now the first thing we're going to do is we're going to start at spark for developers developer dot Cisco spark comm I need to make this bigger oh not that big I'll put this in the chat as well feel free to sign up for an account I'm sure you get that all week now Cisco spark is Cisco's persistent chat application so I'll managing the clouds it's an end encrypted it also allows for video calls it allows for documentation sharing it's a very useful collaboration tool in dev net we use it extensively it gives you the ability to set up different rooms depending on topics and allows you to interact with your colleagues kind of on the fly we love it and we've been working with it the last two years pretty heavily and it's made our lives maybe easier but at least we know what's going on at all times but for the sake of this conversation we're just going to worry about the api's I'd mentioned the importance of the documentation earlier the documentation for spark is in my mind pretty good it'll tell you how to get started how to authenticate but most importantly it gives you information about your your API so that you want to call the API in particular we're going to look at look at for this demo is the room API so this documentation like most API documentation that you're going to see that's good will tell you all the methods available to you in this instance we have five different methods available to us if we want to get all of the rooms that you are a part of so you only have access to information about rooms that you're in so you do a get there if you want to add a room that you have access to you would do a post to that rooms API you can get information about a specific room by sending the room ID to the endpoint if you want to update a room so you want to change the title you would do a put and if you want to get rid of the room you can do a delete so the really nice thing about this documentation and other documentation you'll see will have similar functionality you can run the API request in the docs that's pretty cool tells you what the headers need to be fills them out for you and tells you what career parameters are available if you're following along in the upper right corner I should know there's a button that says test test mode make sure that that's on I think it's defaulted on but I'm not sure but it could excuse me anyway we have the request headers are the request headers in this instance it only requires the content type in the authorization and then the query parameters and then I'll identify if anything's required now if we wanted a list of rooms we don't technically need to see anything if I actually logged in with a demo user if I was logged in with for myself I may only want to see the last ten rooms I was in if I wanted to set that I would particularly set this max value so we'll set it just to see what that looks like and then you have the ability to actually run it and this is running against the real production code this is running against Cisco spark and I'm coming back in this particular user is tied to a few rooms Matt loves Berlin and it's interacting with our dev that bot Debbie so we see the rooms come back and information about them to the right here the title of it is a locked when the last message was sent when it was created all that cool stuff so and we see that that data is formatted in JSON very easy very simple to use now if we wanted to run that the arrests and a postman so we could do it in the documentation but there might be some reason you want to want to play with the API in the rest client what we can do is hop over to postman and I already already have this one queued up here in the list of spark rooms so if you imported that collection it's here already now man there we go that's better right if we want to make this API call I'm going to show you guys what happens if we don't set this we get a 401 unauthorized you see that on the far left over here under status the reason that it didn't let me make that API call is this particular API unlike the github one and unlike the Google Maps one that we saw before requires some level of authorization to do this mostly because it wants to know who you are so it can give you your information back because it is a chat application obviously my colleague Paul may not want me to see some messages that are going back and forth between him and our other colleagues if he doesn't like me that much so anyways you do have to be authorized for that so that's why we see that so we see this this header and it says authorization bear your token now spark is very nice and doesn't make you go through all of the work to go go through all the work of a loss to to get an access token if you want to find out how to do that so you're building an application then we can again come to that noon discussion because I'll walk through how that's done but for development purposes developer Docs or developer Docs cisco smart comm gives us a developer access token so if you're in developer cisco spark comm and you click on your face you can see my access token you can copy that so I need that to make the API call so I'm going to pop that into here make sure if you are following along that you eat that word bear in with its face then they hit send and our API call works so we get our content back in the same format that we saw in the documentation but now it's coming back in our rest client any questions there no cool our status is 200 okay everything's awesome we still got plenty of time alright so that's a get I mean just made a get API call it's pretty simple right nothing to too challenging about that so let's actually look at doing a post creating a room there's an extra step maybe two for this one nothing too complicated but we'll we'll see it happen in real time the first thing we're going to look at is we're going to change the method from get to post since we're creating something new in this in the service we want to use post instead of guess makes sense right the endpoint stays the same a little caveat to this most API is that I come across will have if you're allowed to do this if you're allowed to do a get in a post against the same one will have the same URL from may not there's one API in particular that I talked about and actually going to talk about it next it's the CMX api and when you're setting up a notification subscription you have to use the word notification if you're getting the list of notifications its notifications with an F in plural so little confusing sometimes I actually had an error during my demo because I was jumping between the two because I forgot that so you know make sure that when you're looking at the documentation using the API that the URL is the same for whatever method you're doing because it does tie those with those things are tightly coupled so that's the first change the other change is we have to send the content type because we're telling the API I'm sending you JSON information to do whatever whatever thing I'm asking you to do in this instance it's going to be creating a room and so the content that we are going to be sending needs to be in body so this is a third change now in this instance we only have a little bit of information I'll make that a little bigger we only need to send the title now I know from the documentation that I need to send the title like this it can't be name it can't be space it has to be the word title and then the name after it Mandy usually teaches this class I'm going to take her out since it's my turn today and we're I add a Matt loves Berlin one so let's do Matt loves Berlin too and that's going to we're going to send that you need to set the body type to raw you can send different types of information over a post will actually see an example of the xww form URL encoded in the security class but in this instance we want to send raw content and this is a overlooked thing a lot of times you have to actually pick the content type it actually defaults the text for some reason even though JSON is used more prevalently so we'll make sure we choose JSON here and assuming oh I need to make sure I set my authorization header would have gotten an error there so I'm putting that token back in I need to do that for every API call you send and we get back our information for a newly created room it gives us our ID the title that I specified when it was created and if I go into spark the actual act application I see that make this bigger as well we can we cannot we can see that I was added to this new room that loves for Lynn to so sorry that's so smaller hmm but we saw that that was successful all as well we actually were able to use the API in production environment and get us doing something that we wanted to do now let's go through the actual process of adding a person to a room so well let's list the members of the room right now and just so I can show you guys how we leverage the specific information about a room so we went through we we listed all of our rooms we created a room and now we want to manipulate a room in specifically so we might want to add people to the room but we don't want to add them if they don't if they already exist so we need to get the list of members for that room so we had I mean let me rerun run this list of sparc room we see my new one at the top here and the thing that we want to grab is our room ID because now I only want to work in the Matt loves Berlin to room so I grab that and I'm going to list the members for that specific room now from the documentation it tells me that to get that information I make a call to membership and that I need to send the room ID and if you want to take a look at the guns documentation for that it's under this particular area in the documentation membership and it tells me that if I put my room ID in here that I should be able to get the content back to that particular room and let's see if it actually works in the documentation first we'll do this on the fly and it does there's only one person in it just the person that we had if we ran that similarly in postman we did that that's a bit someone else's very token so we don't want to use that one we want to make sure we use ours so again I'm making sure that I am authorized to do this same kind of information coming back as we saw as we've seen the documentation so now what I want to do oh I want to add myself my Cisco email address to this to this one I see it's not in there that's all fine and good so I'm going to add a person to that room so I'm going to grab the room ID again just to make sure that I have it I'm going to go over to the add a person to a room API now in the body that's where I need to actually send the ID the room ID I don't want to add Adriene to it I want to add myself we have to make sure our headers are set I don't have my token set so I need to go get that again now if you were doing this in an application you know you'd set a variable that get your access or you'd set a method to get your access token at the beginning and then you use that access token over and over again all right so what we should see now is that I get added to that room so everything looks good I get a successful response and if I go into spark and validate that there's a list of people in here if I click on people I see that the creator of the room was Darla but now I'm part of it over here it's a little frustrated that that is so small apologies for that so anyways but you can see on the list of people on the far left side that I've now been added to that room using the API so I've done this all technically programmatically I know I didn't write any code for it but I was able to use the rest client to simulate a scenario had I written code for it any questions on how I got to this point pretty straightforward right so and then finally I don't want this room hanging out we can delete that room let me grab the room ID again I'm just poach it here from this add a person delete it now again we have to set your bearer token one more time and there we go and then I'll delete the room it comes back up to 204 no content depending on the API type C or the API implementation it might come back and say delete successful or content removed in this sentence I know that 204 is okay or 200 204 is okay so it was successful in deleting that and if I go again to spark it tells me I've been removed from the space and it disappears from my list of rooms so everything worked as expected and we're all happy and good to go and I believe just let me make sure that that's the case yep that's everything so before I get finished here there any questions or concerns about what we went through here no are you now excited about learning about what the real subproduct API is a pickie M c MX all that stuff you'll know what they're talking about when they say this is the REST API so cool thank you guys for your time I really appreciate it I'm guess we're supposed to say fill out the surveys I hope you're nice if you're if you're not nice I guess that's fine too it's however you felt about it we are doing activity in the definite zone called the Deb net zone challenge we build a chat bot that allows you to tell it when you have completed activity so you came to Deb net it's 1001 you say Debbie I attended them dev net 1001 in spark and Debbie will say great job and you'll get credit for that and if you do enough things it's a very small number of things we have a bunch of swag at the information booths that you can grab half socks blankets so feel free to play that and check out all the different stuff that we have in the Deb net zone I think this is it one more day like full day so you know check out the workshops check out the learning labs you know check out some of the other sessions we got a big zone here and a lot of stuff so thank you guys for your time let you go I got to run to another session so Cheers [Applause]
Info
Channel: Cisco DevNet
Views: 12,684
Rating: 4.8360658 out of 5
Keywords: DevNet, CLEUR, Coding, APIs, Cisco, devs, developer, network engineers, APIC-EM, ACI, NX-API, Cisco Spark, REST APIs
Id: jLI9xi88wcw
Channel Id: undefined
Length: 47min 29sec (2849 seconds)
Published: Thu Feb 23 2017
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.