Merken

Building Service interfaces with OpenAPI / Swagger

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
welcome everyone would have had the back based this on the formula was built by uh how the use of opening tonight to bind services micro-services today and then we have 5 minutes for questions and answers and the these will come comments to you hello everyone technical leader and you know sure that about you know we're in the business of connecting people with great local businesses emphasis on the word great we have over 100 million business reviews written by our users on the web site that should help you make sure you find the business you're looking for 1 we are alive in 32 countries that have over 90 million monthly active users so what is this all going to be about the talk is about open API or swagger for a is the set of tools and specifications for dealing with services service-oriented infrastructure making calls to service and I'm going to give you a short introduction of some of the available libraries and then I wanna focus on the things tutorials just if you don't talk about so issues you will face in production surprising behavior especially when migrating from an older version of where 1 . 2 to the current 1 which is 2 . 0 and the things that can go wrong some I call them more stories so a bit more about spiraling going to use the terms wires and that's what I'm used to open API is basically a rebranding that was done recently some it specifies the contract of service that is the main thing it does which helps you a lot of them because it's human and machine friendly helps with testing and helps with describing your service and defining the contract and making sure that contract is enforced the pools actually help you with that it does automatic documentation for you so and if you do several services we have like hundreds and production and the out of the question is also like which services to exist what API do they offer what do they do Swire helps with that as I said ensures conformance to the stack can actually make sure your endpoints behave the way you define them and it has a community center the community-driven set of tools which are language-agnostic so I'm obviously going to focus on the Python part of that of that but there's like tools for many other languages and their tools written for swaggered the specification which you can use and take advantage of even though they are not even written in Python so I ended up and as I said that solves several problems when faced with building a service-oriented architecture of the main library I'm going to talk about is bravado it's the client library you can use to make calls to the services that have back in addition to helping with that of an enabling right way less code and to induce calls a nice on equations to get like automatically generated objects stubs it also helps to enforce very contract of your services by making request and response validation there's another library swagger apply which is for the old version of swagger we're not going to focus on that I just wanna mention that it's available and bravado was worn out of swagger but it actually has quite a few surprising differences in behavior so for those of you why are migrating from so applied to provide all I've got some tips on issues you might encounter and you might want to avoid when migrating then is a TLD pyramid as part of our standard service stack and going to talk a bit about fearless where Of course there like libraries for other than web that fits frameworks there like connection for flask or general respire for Django that 1 that's why it's only in light gray and only supports larger 1 . 2 again so if you want to use where 2 . 0 with general life here you're on your own the good thing is that most of these libraries and these provide models where pi current swagger and all of those associated Python libraries you need for that they all Python 3 ready so Python 2003 both work scholars take a quick look at an example sweaters that this is done in the animals you can also write them J. song this is the heart of everything that is how you define your service contract so at 1st say yes there's a swear to inspect from some information this is useful documentation not for anything else some
information about the service itself where it lives on water skiing used to talk to like typically HTTP URI GPS consumes and produces J. songs can also be something else of course knowledge so that 1 of the and
points we define in this case we define the users and point it's http GET operations it returns
unsurprisingly a list of users by user ideas so we define a parameter user ideas that has to be provided in the query and which this is what is required it's of type arrays and it's an array of integers so all this is defined here you can see the operation the further up we're going to use that in a bit this is what identifies your endpoint when using provider now what does this endpoint return In our standard success is the HTTP status code 200 we return a list
of users which is an array of user objects referencing here some the users as you can see this is a reference to another section in the final but you can also reference to external files so this is hollywood split up your suppliers back if it's getting to big that's the default
response defining here which applies in all other cases so in the non 200 response from status code and its references error definition object here which I left out due to not make this too long so let's get to the definition section real quick we defining the user object here it has to be required fields idea and user name this is the User object with reference just a bit above the the properties are defined here the required fields that's an idea integer name of type string and we have an optional field this is a view which is also of type integer it can be present but it doesn't have to be present so specs like these you can write them in your favorite editor development environment there's also tool available this is 1 of the tools and have mentioned the sclera editor and it's a whole stood solution which you can just use righteous packet has nice syntax highlighting it will immediately tell you if the suspect is not some corrective it's not valid and will point out what Aerostar it can also show you might immediately and nice additional documentation of respect and and all of this is of course free and open source now we can also use a tool called where you want to generate a documentation for all respect this is what it looks like this foreign service and developed at the out of the business owner have back and and you can see here some of the things how they turned like all they are turned into documentation in account and business it account and business Forum tags we gave to several endpoints so these are then these endpoints are then grouped by these tags we can see a list of endpoints to conceal your the HDP operations in the bracket you can see the operation idea as I mentioned before this is what we're going to use when calling the endpoint with provided you can also see that there is like come in and 1 that is written strike this is a deprecated endpoint so the became 1 of the problems we haven't services in a service-oriented architecture when you do services micro-services you don't exacting always using the end point you can't really remove them without being very careful but you can deprecated and then when you have to do backwards incompatible changes to your end point you want to add or modify behavior you create a new version unfortunately swagger doesn't have like built in support for versions so what we do is we just append the version at the end which works just as well so let's see how to use that this is a small example of using bravado to make a call to the service as we have defined it in this back
1st we create from the client the problems where client we just tell it where our service lives to begin this will be the host and port to the load balancer I guess and yet we use smart stacked to service discovery from you might use some other form you just pointed to wherever you service lives up to its Slattery animals where J song in this case we're using the final clients I haven't mentioned this centers another library you can use uh instead of using the default synchronous client to make requests which is like based on the great from requests library you can use find out some asynchronous communication is a huge topic here and Europe from a single also was last year and from and my colleague essentially giving a talk on that tomorrow from and if you have visited 1 of those talks you know that it's like quite a shift in in how your program you basically have to we write all of your application like doing this and it won't enable full asynchronous communication but it will do all of your service calls asynchronously and it will hide all the complexity for use on we board tornado or twisted or whatever it will just work and you won't even notice the only thing you need to do as you need to work with futures so in this case we see we're calling to list users standpoint that we defined in this fact we provide the user ID is and that's the parameters so we don't have to like build any sort of or do we were all encoding it's all handled for us and but what is called it doesn't return the result immediately it returns the future that we storing the variable and just as an example we're doing a 2nd service call here we have defined that in the inspectors imagine we did and so we have to futures here and then we call result on these future objects which will block until the responses that so why are we doing this what what does this give us let's take a look and there's a pool called that can which might have heard of that will come help you see what service calls you do and how they behave how long they are held you can see this in the bag and the names and numbers on unimportant or services like pretty heavy service and the service that returns data to our mobile apps so it does a lot of data collection and the endpoints take quite a bit of time on until they're done and this is an example of doing many service calls with bravado 1 after another with the synchronous kind so we see the 1st request is actually very fast the MS we have to wait until it returns then we do the 2nd service call and so on and so forth and when all of these are that we the response now you can gain huge performance
improvement by doing this I just collecting all of the future as far as you can and I'm calling result on obviously this is not always possible since like some of the network with some of the service calls and on the result of previous service call so this is what we see here we still need to do the 1st 2 calls serially like 1 after another but then we have all the information we need to talk to all of these other service endpoints and services fetch all of the data at once and the time it takes this the time for the longest of those calls and now you can like obviously see the difference so this is the power of final and bravado very few changes to your and application and you gain these benefits but let's focus now on the main part of the talk my so so-called war stories because all of this is nice that's why I've done a pretty quickly like tutorials online they will tell you this and that's to be when they stop but when you in production will encompass several issues that you might not have thought of previously so let's talk about them the 1st of which is not really specific to bravado but you have to think of it any time you talk over the network you have to deal with network issues and 1 things we 1 thing we have encountered are besides connection issues which like you have to deal with as well on time on issues so you know the low changes over day and not every request will be as fast as we want it to be and you have hopefully set timeouts and please always have timeouts bravados default is no time out some so please send it because otherwise something in your sample time some have to some ungodly amount of seconds please don't forget that and so the let's say it just time out and so what we've done here is we created a future just like we did before and then we wrap the call to resolve within the we tried a career that will just like you know call result multiple times in case the foundation of the time what the exception happens this works unfortunately or fortunately it works if you use the default synchronous HTTP client because in the synchronous case nothing happens until you call result that's the whole point of it so when you call resulted initiates the network request to your service waits for the response returns to result in the asynchronous case once to create the future of the network requests initiated when you call resulted just blocks of response that has already arrived in the background this also means that we we try it like this you will just add additional in this case 2 seconds 2 seconds 2 seconds without ever really doing the network all and and getting a result you want so With this programming model what you need to do is you need to wrap balls the future of creation and the call to result in your retry decorator this will work another issue this unfortunately has unlike it's that more people have encountered a lot on both when upgrading from where 1 . 2 so that's where pi library as well as newcomers to bravado that just have a service already in production and they create a spec for it and they want to use for model so what we see here is the adjacent representation of the user object we defined in the spec and as we can see there's a business IT field with the value of now unfortunately the tools stoned agree that this is correct what they say is that he this optional so either its president and the value has the type integer or it's not there but in this case would you will get is the validation error because you turn the tide now the Python technologies have no instead of type integer and instead applied land so in the old swear version what you could do is pass and parameter to your result call telling you to ignore this case unfortunately this doesn't work anymore this 2 solutions the 1 I prefer is to change your services to just filter out these fields just don't send them it will make response shorter everything is greater sometimes you can't do that In that case
passed the validate responses parameter as a configu option to your client and what I would suggest to do is that you create a separate client that you do endpoint calls that need this option but please don't send it as the default like for every call you do because I consider that like the contract validation like making sure everything behaves according to suspect 1 of the really good features of office spherical system that's another surprising should creating declined it's it's a dynamic operation and it can take time it will probably take time if have a non-trivial swear sweat respect for your service so you can see it as an example up internally example where I had 1 of our them bigger services inference services and I just measure the time it takes to instantiate declined the thing is it will do like 1 or potentially multiple network request in the background to fetch perspective if it references external possible fetch those as well and all of this takes time when you migrate from supplier apply you won't even think of that because prior pi had a built-in mechanism of catching that so if I did like if I had a multiple requests on and it would just hit the button and tonal tension recreate client from the cache without you noticing so what we did when we upgraded an . to swear 2 . 0 is we forgot about that and the and then you get a graph like these unfortunately I don't have the graph of the timings without this is the graph of where we solve the issue fixed it by caching declined ourselves and deploying that production you can see like quality fifties but the p fifties probably not see that went on a little bit but especially the at the 95 and during 9 so like the lowest part of the request is not familiar with percentiles they became way faster but just catching them and this is something you need to do yourself there's no built solution for that can provide balance of the mode of some of the issues of deployment and scaled i 2 billion look like a huge fan of for him on and scale especially like at what scale I'm I'm talking here about like not just running wanted to service instances and you have like 3 service in total but you may have like tens or hundreds of instances of that service so when you deploy them to production you have like some sort of deployment strategies that ensure that you're not like dropping requests returning errors like that basically nobody notices you deploying a new version of that service to production there are ways to to do that like some of our platform as a Service open-source offering that we have uh the default strategy is crossed over so it will to begin like I just spin up X number of service instances that you have defined you want and production for the new version so like 4 and a period of time you have basically both of them running production and then after it verifies that everything works well and we'll just shut down the old ones 1 by 1 until only the new version in connection another another deployment says that we use for our like old model if the job is just have instances running and then take them all of the load balancer switch to cold version bring them up again and put them into the load balancer so 1 by 1 or like slowly you flip them all until they're all running the new version of the code so how does this affect you as a service developer like none stress you write code you deploy it doesn't affect you and what it does actually and let's get back to versioning abatacept versioning you have to do that to and do backwards incompatible changes and has a developer you know multiple versions that means more maintenance you want to minimize the cost of maintenance so you try to cut corners wherever possible you try not to have create too many multiple versions of the same endpoint now what if you want to add data to the response of an endpoint activity this is fine from bravado does enforce the contract of service but it just checks that the data that you send conforms to the specs if you wanna send additional data that doesn't care about that only if the type of the data is not correct or if some data is missing that according to expect should be sent so you might be thinking I am just adding data that's not a problem the point here is not optional so we're changing the specter say hey industry-sponsored is required to send this field of course we've done this as the fact this doesn't work really because of how you deploy your service so let's say we have this service we added a few to the stack and we did the implementation and we're deploying this production we have both versions running in production during deployment soul that a client wants to call our service it fetches the spec here by chance the new version of our service gets to update its well this you has to be present in the response all that knowledge as a service call fetches the data has a lot will have it it will hit the old instance or code running in production which knows nothing about the new field and it doesn't return so instead of a nice response all you get is an exception and if you're unlucky the way depending on how you program that this might result in a user-facing so how do you do this uh without creating an additional version well like with many things you have to spit it out in multiple compatible steps so the 1st thing is you added as optional to the specs you have the field to this bank but you don't say that it's required and you add implementation so you already returning to feel you shift so you do a call kosher deployed as the production and then in in the 2nd step what you do is you just do a small change to the spec and market as required and all is well if you don't do this this is an example like a screenshot out of a postmortem that was sent you know this is the arrows might we're not splitting this up in these 2 steps when deploying to production yes another thing and of course it makes sense that as I said you cannot just remove data from the spec right from the from the response that is obviously not a backwards compatible change so using all but but we can use the pattern we just used to do this change to do this in a backwards compatible way right so what we do 1st is removed removed the field from the specs so this fact knows nothing about this field anymore but we don't change the implementation we still return the field and only in the 2nd step so we do a 2nd coat and we shift the implementation and all the time right no it isn't I don't do that this will also calls on my calls issues in production and then I got the postmortem to prove it in because you like as I said if you want to run this efficiently in production you need to catch up your client which means it doesn't on every request prefetch swear respect and instantiate swear kind and everything so you can be sure that that client in between the 2 pushes will fetch an updated version of perspective you don't know and it doesn't as you can see here so what you need to do to do this in a backwards compatible way would be to do the 2 steps like do the 1st step by consent change this fact know of all of the clients all of the columns of the service restart so the caches clear invalidated and then you can use the 2nd called and removed the field for real assimilation with adding a reference to a new spec file with the like dollar signed graphs and this should be going like a little bit obvious by now so I'm just going through the the little bit quicker and if you add a reference to a new file and you do it all in 1 step so you have a reference and the file itself you may have the same issue that you get an updated suspected references to new file but then when trying to fetch it you had an instance that still reinstall version of the code that doesn't have the final say solution and add the file 1st without modifying the specs so you are sure every instance has the file and then in the 2nd step we have the reference to it all is well In this case would also can do is you can let parameters prior compliant specs for you if you're using pyramid and pyramid supplier there is an option that what was that it recently that some like reads the suspect combines it for you and creates 1 big suspect and it will then served as 1 big back to your mom callers eliminating this issue the 1 thing this doesn't support is recursive references so if you have like from your use all objectives self-referencing is referencing itself this will work like you need to have multiple spec files in that case the colleague of mine is actually working on on solving that but right now the difference the state of of things that a pull request out of your you will you can check it out if you are interested now that 1 of the last things I want to mention because I find it's so surprising is changing the tag of an point like I kind of glossed glossed over this previously but when you look at how we use the client we say client broad view as a donor list users and they thought was that's the attack the gave structure the 1st time in the spectra gave to this standpoint and list uses as the operation of the operation ideas has like idea and the name obviously you know you don't change in 91 things will break but that attack the change will operate clients that unfortunate I might say that he is the postmortem all of this has happened in production at Yale and the thing I find unfortunate here is that tax typically use them for documentation and if they are used for documentation so some at of this was done to improve documentation like you build more than 1 point want who probably to use finer grained tags to make them from better like that so that you can find them better in documentation and the developer just change the tag and all of a sudden all clients from so just be aware of the In conclusion of I think the main conclusion here is when in doubt version several of these examples could have simply been preventative additional versions of endpoints were created we as developers we like to be efficient we like to reduce maintenance costs as much as possible just be aware that there's also a cost when you don't version of the potential cost so be very careful and I can tell you from experience on there's not a lot of automatic tools available like them scripts that will check for these changes so when you try to do this any way you need to rely on things like called reviewing and testing to to catch these and the thing is most of these issues are very hard to catch when testing writing utensil integration tests or when testing manually on stage so when in doubt version 2nd 1 this is more of the general form Service thing you have to deal with the network there's a really great talk and had high con this year that talks about some of the things you might want or probably need to do well when talking over the network from this also taught by my colleague of that was done yesterday I'm going to reference but also this is something new I don't see mentioned that often we always talk about like this this role for backward compatible can we go from state a to B and will still work everything in state and what if we have to go back to state a will this break anything but there's also like a transition period like none of this is the instantaneous so think about during that time because you will have both called versions Running introduction forest nontrivial amount of time then just for those migrating be mindful of the differences between the and bravado uh I just mention this because as you as you've heard but you haven't seen the difference in API section of that pixel like migrating your code is actually on really quickly it's the behavioral changes that will bite you potentially so pay attention to those and I just wanted to put this in because of there's still some kind of were like service high or even micro-services we haven't had great success with micro-services where moreover like services company I just want to mention something that like Martin Fowler and like a lot of people that hopefully know what they're talking about will also tell you services is not something you do because they're great like services something you do because you have to to solve other problems like to solve problems at scale and scale doesn't mean you traffic and if you're not able to reliably run your model is for you 1 application Introduction not going to reliably run dozens of services in production it doesn't help you with that but if you're not able if you're having this is with deployment not able to reliably deploying your model introduction you don't you not going to solve this by deploying multiple services with dependencies in production all that services do is they help you scale the the number of developers so in order to help you with that and you know reduces the amount of blockage and issues will face when developing with multiple teams from the same called base that maybe services makes sense I just want to mention this other talks like a mentioned yesterday we already saw protecting users with circuit breakers another torque from that deals with 1 of the things best practices you should do when developing with services and the whole premise like Scott talked about it yesterday if you called if the quality is a simple python function call you're going to like this will succeed every time only if you go over the network then applied to a bunch of additional things to have less words behavior in case of failure ions urge you to check it out on youtube once it becomes available and if you want to know more about asynchronous some networking and goals losses talk tomorrow he tells you all about the nitty-gritty details how the user how to do it in Python 3 how to do it with some Python 2 and gives you a lot more detail and gives you some insight into what you have to do if you don't use something like 5 through your networks requests good check us out and we have a pretty nice engineering block you can find that the both as well I want to mention that we're doing raffle right now so we're giving away a pretty nice room so if you want to come find us that we're giving it away friday so you should be around fighting and that's it thank you very much think is that we have a long of questions and answers this with the microphone so that you can hear you will find regarding thank you and this was a really great talk in did this figure clients subparts twisted and house yes internally users president and crochet actually so as I said like it's not doing any magic but it hides a lot of the complexities and if you do things like you also talk to your data store and you want to be that the asynchronous as well you have to do with like yourself manually final will not help you with that but if most of the time leaders network requests I think fighters and the pretty great to do that without having to deal with all the peculiarities In because I'm interested in if we are using twisted than if we can just use their requests and said it was too awkward to call that system must know the owner of the present in our our called for absolutely like if if you if you want to do it yourself you have absolutely no more power more flexibility absolutely thank you yeah thanks a lot there was a great and actually and I am a I'm writing a client for an API right now and I'm realizing that I'm kind of re and reinventing the wheel and reinventing and what's it was the very and bravado in a sense because I do know about it and and I wanted to know also if bravado generated also all the mock requests for example that you would need if you're writing a client at the same time of generating all those nice requests functions for you that's a great question and I didn't talk about testing all from unfortunately right now there is no open source solution for that we have something that is being developed internally I I hope I can promise anything but I hope we can open source this we also have some basically like on something written by my colleague glories from a mock server that will like when you write a so like we still write or MOCs manually right now for testing but it will then serve these like readers virus back and find the appropriate more conservative and all of it will actually be validated to make sure like the mock conform to this virus back and everything yeah but we I hope we can all this was something that will actually like look at the stack and then generate data the correct form like formant type automatically but sorry and nothing happened available right now and so just to understand the picture could correctly in this former doesn't help you that all right the back and the only has declined to validate the data sent and received years and that is true but it doesn't mean no it doesn't really have like you still need to write the back-end yourself it does provide you would like that permits where for example it does help you with like the serving this fact that does have with making sure you endpoints conform to this fact but the implementation you have to write yourself and then in exposing them as sort of description the fights we did that description it's also up to you and you have to to just exposed to to the US at http somehow right if you use experiments where which is what I'm most familiar with this is like 1 of the core features so you just pointed to the file on the file system and will do everything for you like not only survive but potentially as I mentioned also like read multiple files and combine them into 1 final and to increase efficiency and things like that so for parameter takes care of that I think connection does the same thing for flask but I haven't used itself at a real on the so what about the hypothetical marks are you going to do it a lake in process for example like responses for explorers in the go or is it going to be laid out of processing a separate server like requirements for the motorbike and both possible like it depends on what type of testing you talk about what what we have is like obviously if we we have the real service implementation and then we have this so-called mock server which basically just you can spend it out just like a real service and instead of like doing real work it will serve mock responses this is a really great not only for integration testing but also like I guess that we are like a back and forth from act like Android and IOS apps and they can use this for their integration testing without having like everything at Yale spin that happened and use it for testing and that is 1 thing then for the for the other part we do have something where In the testing environment basically mock salt thank you mark out the service called on the client side and it will just generate a mock response for you this is when you want to unit test your the client without having like we have a we have an acceptance testing set up that spins up a bunch of Java containers kind of sometimes a little bit brittle and it takes a lot of time so you probably want to unit test as well and this helps with that the idea of alternatives and we still do like most of our code is like that we we just right the responds manually like we mark it out and write response manually it works but you should have some form of like acceptance testing integration testing preferably because and we've had several issues where the marks at some point just on don't conform are not what the service really returns anymore and that's when you have issues the objects and just a quick question how it is um permits swaggerer relate to rule library like corners that and also gives a convenience features to create a REST API but they related at all the Kronos you warnings the things that I know I'm sorry I'm not familiar with that of and then does that permits by the provider in other than serving the respect to the to the bravado applying doesn't provide neurodegeneration features yes so they get basically you do that we can like the 2 like yeah that's the detail over there and we can discuss details but I actually it's called and which reviews here other areas is the main author of parents swagger so purely pro like the best person to to talk to all of the details things and I don't know going around beginning of the G 7 input and we put but in this state value of a description that is really nice to adjacent to not use exactly the same gene or something you found on yeah great question is actually based on Jason scheme of the the squares specifications it's not the superset model it adds something but it also takes things the way you like about the issue and talked about with the novel value Jason scheme I should like is able to deal with that because you're allowed to give some a list of allowed types for a field unfortunately is where this is not allowed so it's kind of like in most of the time it's the superset but sometimes not everything of treason schemas supported his well any more questions so thank you for attention if you're more information you can contact the
Subtraktion
Web Site
Bit
Formale Sprache
Versionsverwaltung
Gleichungssystem
Term
Code
Framework <Informatik>
Ausdruck <Logik>
Virtuelle Maschine
Client
Benutzerbeteiligung
Informationsmodellierung
Web Services
Endogene Variable
Programmbibliothek
Serviceorientierte Architektur
Softwaretest
Umwandlungsenthalpie
Einfach zusammenhängender Raum
Addition
Schnelltaste
Videospiel
Validität
Stellenring
Systemaufruf
Biprodukt
Fokalpunkt
Design by Contract
Objekt <Kategorie>
Konforme Abbildung
Menge
Offene Menge
Mereologie
Wort <Informatik>
Information
Web Services
Nichtlinearer Operator
Parametersystem
Bit
Datentyp
Punkt
Wasserdampftafel
Abfrage
Mailing-Liste
Code
Service provider
Computeranimation
Metropolitan area network
Mailing-Liste
Web Services
Ganze Zahl
Parametersystem
Datentyp
Information
Versionsverwaltung
Große Vereinheitlichung
Haar-Integral
Array <Informatik>
Bit
Freeware
Mathematisierung
Versionsverwaltung
Code
Computeranimation
Metropolitan area network
Statechart
Poisson-Klammer
Ganze Zahl
Lesezeichen <Internet>
Web Services
Webforum
Reelle Zahl
Endogene Variable
Datentyp
Default
Serviceorientierte Architektur
Nichtlinearer Operator
Addition
Datentyp
Sichtenkonzept
Kategorie <Mathematik>
Open Source
Systemaufruf
Mailing-Liste
Elektronische Publikation
Endogene Variable
Objekt <Kategorie>
Texteditor
Datenfeld
Ganze Zahl
Bitfehlerhäufigkeit
Heegaard-Zerlegung
Garbentheorie
Programmierumgebung
Fehlermeldung
Zeichenkette
Resultante
Bit
Punkt
Selbstrepräsentation
Versionsverwaltung
Kartesische Koordinaten
Extrempunkt
Komplex <Algebra>
Synchronisierung
Computeranimation
Metropolitan area network
Client
Web Services
Programmierparadigma
Default
Serviceorientierte Architektur
Web Services
App <Programm>
Parametersystem
Asynchronbetrieb
Datennetz
Systemaufruf
Ausnahmebehandlung
p-Block
Biprodukt
Datenfeld
Ganze Zahl
Client
Information
Fehlermeldung
Subtraktion
Mathematisierung
Zahlenbereich
Whiteboard
Lastteilung
Bildschirmmaske
Multiplikation
Informationsmodellierung
Endogene Variable
Datentyp
Programmbibliothek
Optimierung
Hilfesystem
Einfach zusammenhängender Raum
Zwei
Validität
Mailing-Liste
Fokalpunkt
Objekt <Kategorie>
Mereologie
Einfügungsdämpfung
Komponententest
Ungerichteter Graph
Computeranimation
Deskriptive Statistik
Client
Mustersprache
Skript <Programm>
Dateiverwaltung
Kontrollstruktur
Softwaretest
Kraftfahrzeugmechatroniker
App <Programm>
Addition
Sichtenkonzept
Datennetz
REST <Informatik>
Güte der Anpassung
Humanoider Roboter
Gleitendes Mittel
Biprodukt
Rechter Winkel
Heegaard-Zerlegung
Ablöseblase
Server
Ordnung <Mathematik>
Programmierumgebung
Instantiierung
Fehlermeldung
Subtraktion
Mathematisierung
Systemplattform
Bildschirmmaske
Informationsmodellierung
Perspektive
Reelle Zahl
Datennetz
Endogene Variable
Datentyp
Programmbibliothek
Vererbungshierarchie
Zeitrichtung
Äußere Algebra eines Moduls
Datenstruktur
Pixel
Zehn
Open Source
Schlussregel
Elektronische Publikation
Summengleichung
Caching
Digitaltechnik
Wort <Informatik>
Boolesche Algebra
Bit
Prozess <Physik>
Punkt
Inferenz <Künstliche Intelligenz>
Applet
Versionsverwaltung
Kartesische Koordinaten
Eins
Web Services
Prozess <Informatik>
Figurierte Zahl
Default
Bildauflösung
Serviceorientierte Architektur
Web Services
Umwandlungsenthalpie
Lineares Funktional
Nichtlinearer Operator
Parametersystem
ATM
Zentrische Streckung
Systemaufruf
Nummerung
Ein-Ausgabe
Frequenz
Konfiguration <Informatik>
Softwarewartung
Teilmenge
Datenfeld
Strategisches Spiel
Garbentheorie
Information
Versionsverwaltung
Normalspannung
Aggregatzustand
Computervirus
Total <Mathematik>
Schaltnetz
Gruppenoperation
Implementierung
Zahlenbereich
Kombinatorische Gruppentheorie
Code
Lastteilung
Data Mining
Multiplikation
Kugel
Speicher <Informatik>
Optimierung
Softwareentwickler
Hilfesystem
Leistung <Physik>
Autorisierung
Einfach zusammenhängender Raum
Trennungsaxiom
Wald <Graphentheorie>
Graph
Validität
Mailing-Liste
Physikalisches System
Ordnungsreduktion
Quick-Sort
Endogene Variable
Design by Contract
Office-Paket
Integral
Objekt <Kategorie>
Moment <Stochastik>
Quadratzahl
Flächeninhalt
Mereologie
Speicherabzug
YouTube

Metadaten

Formale Metadaten

Titel Building Service interfaces with OpenAPI / Swagger
Serientitel EuroPython 2016
Teil 130
Anzahl der Teile 169
Autor Jaensch, Stephan
Lizenz CC-Namensnennung - keine kommerzielle Nutzung - Weitergabe unter gleichen Bedingungen 3.0 Unported:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen und nicht-kommerziellen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen und das Werk bzw. diesen Inhalt auch in veränderter Form nur unter den Bedingungen dieser Lizenz weitergeben
DOI 10.5446/21226
Herausgeber EuroPython
Erscheinungsjahr 2016
Sprache Englisch

Inhaltliche Metadaten

Fachgebiet Informatik
Abstract Stephan Jaensch - Building Service interfaces with OpenAPI / Swagger Ever wondered how to keep track of all of your services and their APIs? I'm going to explore how to build your Python services with OpenAPI/Swagger and how it helps you solve problems like communication between services, request and response validation, and documentation of your API. I'll also discuss some challenges you might face when running Swagger in production, gathered from over a year of heavy usage at Yelp. ----- Implementing a service-oriented architecture (SOA) is a proven way to split up large monolithic codebases and to scale development when your organization grows to hundreds or thousands of engineers. I'm going to explore how to build and document your services with OpenAPI (formerly known as Swagger). I’ll discuss the benefits, how to generate a beautiful HTML documentation for your API, and how you can effortlessly make calls to your services. In the second part of the talk I'll discuss and tell you how to overcome challenges you might face when running OpenAPI in production, gathered from over a year of heavy usage at Yelp for hundreds of services. The OpenAPI initiative is a cross-vendor consortium focused on creating, evolving and promoting a vendor neutral description format. As an open governance structure under the Linux Foundation, its members include Google, IBM, Atlassian and PayPal.

Ähnliche Filme

Loading...