We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Documentation-driven development for Python web APIs

00:00

Formal Metadata

Title
Documentation-driven development for Python web APIs
Title of Series
Number of Parts
115
Author
Contributors
License
CC Attribution - NonCommercial - ShareAlike 4.0 International:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
This presentation shows how we can use documentation-driven development to minimise the risk of API integration failures. APIs are the gateways that connect our web applications to the world. Microservices rely on them to work together, and frontend applications use them to connect to our backend. Despite their importance, API integration failures are a daily occurrence. There’re many reasons for this, but a common factor is the lack of API documentation, or the use of bad API documentation. Often, API documentation comes in unstructured formats or in JSON examples, instead of standard formats such as OpenAPI or Schema Definition Language. When we don’t use standards to document our APIs, we give up the whole ecosystem of frameworks and tools built around those standards. Such tools and frameworks are designed to make our lives easier when managing the lifecycle of our APIs. In documentation-driven development, we write the API specification first, and then we implement the API server and the client against the specification. I’ll show how we can use mock servers to test the client while the backend is being developed, and tools like Dredd and schemathesis to validate the backend implementation. I’ll show how we can use these tools in a CI server to validate our code before it’s released. This approach doesn’t eliminate completely the risk of API integration failures, but it helps to minimise it.
Slide ruleTrailSoftware developerWeb 2.0Client (computing)DivisorMacro (computer science)WebsiteMultiplication signField (computer science)Different (Kate Ryan album)Discounts and allowancesServer (computing)BuildingFeedbackInterface (computing)Task (computing)Mobile appHookingType theoryComputer fileCausalityFunction (mathematics)Thread (computing)View (database)ImplementationDatabaseScripting languageProduct (business)Human migrationVirtual machineUser interfaceIterationAreaString (computer science)Computing platformRevision controlIntegerBlock (periodic table)Local ringConnectivity (graph theory)Lebesgue integrationPerfect groupCombinational logicBeta functionPoint (geometry)Computer wormDiameterEndliche ModelltheorieCASE <Informatik>CodeSoftware bugBoundary value problemMathematicsSystem callRight angleSampling (statistics)Common Language InfrastructureValidity (statistics)Cartesian coordinate systemSoftwareProcess (computing)HypothesisSoftware repositoryArithmetic progressionModule (mathematics)outputAdditionINTEGRALCuboidLogicTerm (mathematics)Flow separationDescriptive statisticsResultantTranslation (relic)Software testingSingle-precision floating-point formatLine (geometry)Form (programming)Library (computing)Suite (music)Metropolitan area networkComputer programmingInformation securityExecution unitContinuous integrationAuthenticationError messageComplete metric spaceMereologyControl flowOperator (mathematics)Video gameLatent heatElectronic mailing listWeb pagePhysical lawFront and back endsRun time (program lifecycle phase)Data modelIP addressComputer architectureNumberPosition operatorState of matterFile formatPrisoner's dilemmaContext awarenessCore dumpDesign by contractConnected spaceLevel (video gaming)BitSoftware frameworkConfiguration spaceBuffer solutionCommunications protocolIntegrated development environmentOverhead (computing)Parameter (computer programming)TelecommunicationPresentation of a groupUniform resource locatorMoment (mathematics)Online chatDirection (geometry)Representational state transferUnit testingOpen setInformationExterior algebraStandard deviationLink (knot theory)Formal languageWordPoint cloudProgram slicingStreaming mediaComplex (psychology)TwitterDemosceneCloningRepository (publishing)Boolean algebraMeeting/Interview
Independence (probability theory)Software developerMaxima and minimaServer (computing)TwitterKolmogorov complexityDisintegrationImplementationClient (computing)Uniform resource locatorSoftwareComplex (psychology)Link (knot theory)AuthenticationSoftware bugFeedbackResultantLebesgue integrationProduct (business)Software frameworkWordRight angleMereologyBuildingComputing platformProcess (computing)Multiplication signServer (computing)Client (computing)Latent heatINTEGRALSoftware developerRepresentational state transferComputer fileCodeContinuous integrationConfiguration spaceImplementationWeb 2.0Type theoryBeta functionRevision controlDiscounts and allowancesInterface (computing)WebsiteComputer animation
DisintegrationFront and back endsFlow separationINTEGRALBoolean algebraContext awarenessString (computer science)Software developerCausalityPoint (geometry)Perfect groupIntegerDivisorClient (computing)Server (computing)MathematicsDifferent (Kate Ryan album)Multiplication signInformation securityDatabaseValidity (statistics)AdditionTranslation (relic)Front and back endsField (computer science)LogicCASE <Informatik>Cartesian coordinate systemEndliche ModelltheorieInterface (computing)Type theoryView (database)Process (computing)File formatLebesgue integrationBoundary value problemCodeComputer animation
Client (computing)Menu (computing)Front and back endsMultiplication signFundamental theorem of algebraPhysical lawClient (computing)XMLUML
Communications protocolType theoryBuffer solutionLatent heatStandard deviationFile formatComputer animation
Server (computing)ImplementationClient (computing)ImplementationLatent heatSoftware developerProcess (computing)Client (computing)Front and back endsServer (computing)Computer animation
Software testingDisintegrationCodeUnit testingSoftware testingSuite (music)Term (mathematics)Control flowINTEGRALResultantType theoryFeedbackoutputPoint (geometry)Connectivity (graph theory)Module (mathematics)Combinational logicDifferent (Kate Ryan album)Local ringBlock (periodic table)Form (programming)Mobile appLatent heatPresentation of a groupParameter (computer programming)BitContext awarenessSoftware repositoryComputer architectureHypothesisThread (computing)
Coma BerenicesCodeData modelOperator (mathematics)CodeVideo gameServer (computing)MereologyInterface (computing)Combinational logicBlock (periodic table)LogicLibrary (computing)Task (computing)Computer filePresentation of a groupSoftware frameworkConnected spaceStandard deviationCore dumpComputer animation
PlastikkarteSoftware testingAdditionComputer fileEndliche ModelltheoriePresentation of a groupLatent heatProcess (computing)Uniform resource locatorError messageSoftware testingExecution unitMultiplication signLibrary (computing)Right angleHookingSoftware repositoryTask (computing)Suite (music)Virtual machineRun time (program lifecycle phase)Validity (statistics)Thread (computing)Scripting languageComplete metric spaceServer (computing)Software developerCodeLine (geometry)Single-precision floating-point formatComputer animation
Computer-generated imagerySoftware testingFunction (mathematics)Server (computing)Latent heatCodeThread (computing)Suite (music)Computer wormTerm (mathematics)
Coma BerenicesImplementationServer (computing)Link (knot theory)Software testingSyntaxbaumMenu (computing)Different (Kate Ryan album)Software repositoryCuboidSoftware developerState of matterSoftware testingAdditionHypothesisExterior algebraUniform resource locatorFunction (mathematics)Suite (music)Link (knot theory)Field (computer science)Latent heatSampling (statistics)InformationComputer worm
User profileHypothesisUniform resource locatorRevision controlOpen setConnected spaceLink (knot theory)Software developerBlock (periodic table)Process (computing)CuboidSoftware testingHypothesisSuite (music)Multiplication signLibrary (computing)Latent heatNumberLink (knot theory)Computer animation
Client (computing)Server (computing)Library (computing)INTEGRALClient (computing)AdditionProcess (computing)Server (computing)Front and back endsCuboidBuildingSoftware developerRun time (program lifecycle phase)Local ringComputer fileCodeVirtual machineState of matterLatent heatPosition operatorOverhead (computing)Software testingSoftware frameworkDatabaseConfiguration spaceComputer animation
EmailAverageDependent and independent variablesServer (computing)ClefGamma functionComa BerenicesUniform resource locatorSoftware repositoryComputer wormServer (computing)Source code
Server (computing)Point cloudContinuous integrationPoint cloudServer (computing)Computing platformComputer animation
Uniform resource locatorSoftware testingInformationRevision controlServer (computing)outputUniform resource locatorClient (computing)Latent heat
Server (computing)Uniform resource locatorServer (computing)Computer fileMacro (computer science)
Server (computing)Server (computing)Common Language InfrastructureSystem callComputer wormContinuous integrationSoftware testingSuite (music)Validity (statistics)Software repositoryConfiguration spaceCodeINTEGRALHypothesisCASE <Informatik>MathematicsScripting languageMultiplication signComputer animation
Discounts and allowancesCodeSlide rulePresentation of a groupComputer animationSource code
BuildingVideoconferencingServer (computing)Moment (mathematics)Validity (statistics)Lecture/ConferenceSource code
Multiplication signMeeting/Interview
Transcript: English(auto-generated)