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

Designing a Human-Friendly CLI for API-Driven Infrastructure

00:00

Formal Metadata

Title
Designing a Human-Friendly CLI for API-Driven Infrastructure
Title of Series
Number of Parts
141
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
As Bloomberg’s infrastructure grows and evolves, the tools we use to manage it are becoming increasingly important. To streamline infrastructure management, our team set out to design a REST API and constituent CLI (Command Line Interface) that would comprise a single interface for both programmatic and human interaction with our infrastructure. Traditionally, building a CLI that is tightly coupled to an API requires maintaining a separate codebase, which is tedious and error-prone. Instead, we designed a CLI that dynamically generates commands based on the OpenAPI JSON documentation. However, since APIs are designed for computer interaction, we designed our API to include the information needed to implement a human-friendly CLI. Leveraging Python, FastAPI, and numerous other open source projects, we built a stable, extensible tool that greatly improves how we interact with our infrastructure.
Common Language InfrastructureInterface (computing)Line (geometry)Representational state transferServer (computing)Addressing modeDefault (computer science)BuildingOperations researchString (computer science)SynchronizationComputerCodeComplex (psychology)Cluster samplingZeitdilatationDigital filterOperator (mathematics)Function (mathematics)Interactive televisionServer (computing)User interfaceImplementationSynchronizationInjektivitätSoftware engineeringRepresentational state transferCommon Language InfrastructureType theoryClient (computing)Translation (relic)ResultantInformationFlagParameter (computer programming)Domain nameLevel (video gaming)Interface (computing)Goodness of fitMappingNumbering schemeSampling (statistics)Programmer (hardware)Different (Kate Ryan album)SpacetimePoint (geometry)Software maintenanceAnalytic continuationSoftware developerMultiplication signCodeScaling (geometry)Single-precision floating-point formatNeuroinformatikOpen setDependent and independent variablesRevision controlQuery languageElectronic mailing listMilitary baseBitMathematicsPattern languageEndliche ModelltheorieFlow separationProjective planeCartesian coordinate systemSource codeRight angleComputer animationLecture/Conference
HypothesisGodObject-relational mappingFunction (mathematics)EmailComputer configurationChi-squared distributionString (computer science)Array data structureComputer fileLogarithmAliasingServer (computing)ImplementationDefault (computer science)Computer virusParameter (computer programming)Query languageRouter (computing)Data modelInheritance (object-oriented programming)Core dumpFlagInformationKey (cryptography)Demo (music)BitDescriptive statisticsCommon Language InfrastructureOpen setRight angleInformationData loggerDynamical systemFile systemObject (grammar)Sheaf (mathematics)CASE <Informatik>Software frameworkOnline helpWeb 2.0WeightProjective planeTemplate (C++)Multiplication signSingle-precision floating-point formatMultiplicationClient (computing)Electric generatorDifferent (Kate Ryan album)Identity managementVirtualizationMappingParameter (computer programming)Computer fileFormal languageDemo (music)Representation (politics)FlagBoolean algebraServer (computing)ImplementationEndliche ModelltheorieElectronic mailing listQuery languageRouter (computing)CodeType theoryProgrammer (hardware)LoginGoodness of fitPosition operatorString (computer science)Computer configurationFunction (mathematics)Raw image formatElectronic visual displayMoment (mathematics)SoftwareUtility softwareGroup actionDeclarative programmingLatent heatOpen sourceRepresentational state transferGodTouchscreenDependent and independent variablesSocial classField (computer science)Data dictionarySet (mathematics)Line (geometry)File formatTranslation (relic)Table (information)SpacetimeNumberEntire functionMathematicsComputer animationXML
InformationFlagEmailKey (cryptography)Range (statistics)Demo (music)String (computer science)Server (computing)Cone penetration testPhysical systemElectronic mailing listStatisticsProcess (computing)Electronic visual displayComputer networkFunction (mathematics)File formatOnline helpKey (cryptography)Descriptive statisticsType theoryLine (geometry)Server (computing)FeedbackTable (information)WeightOpen setSystem callWindowElectronic mailing listFunction (mathematics)File formatSource codeFlagBoolean algebraData centerSoftwareElectronic visual displayVirtual machineHoaxPhysical systemInformationCommon Language InfrastructureInterface (computing)Demo (music)Lecture/ConferenceComputer animation
MathematicsComputer fileBitServer (computing)File formatBranch (computer science)Line (geometry)Electronic mailing listFlagSource codePi
Server (computing)EmailKey (cryptography)FlagElectronic visual displayServer (computing)Descriptive statisticsFile formatSheaf (mathematics)
File formatServer (computing)Query languageDependent and independent variablesElectronic visual displayMulti-agent systemCluster samplingPhysical systemParsingProcess (computing)VirtualizationNumberFlagFunction (mathematics)Server (computing)PhysicalismUniform resource locatorCommon Language InfrastructureMathematicsCodeElectronic mailing listComputer programmingWindowMultiplication signType theoryFile formatDifferent (Kate Ryan album)Interface (computing)Computer animationLecture/Conference
FreewareSoftwareLatent heatRevision controlTranslation (relic)EmailArc (geometry)Multiplication signAsynchronous Transfer ModeService (economics)Type theorySystem callParameter (computer programming)Functional (mathematics)Numbering schemeElectronic mailing listMechanism designBoolean algebraOpen setTerm (mathematics)Fluid staticsSemiconductor memoryMereologyComplete metric spaceInclusion mapPresentation of a groupComputer programmingOpen sourceAliasingCommon Language InfrastructureMathematicsScripting languageRight angleElectric generatorSet (mathematics)FlagFile formatTemplate (C++)VirtualizationSinc functionExploratory data analysisNeuroinformatikServer (computing)Single-precision floating-point formatDemo (music)ParsingPhysical systemMultiplicationChainBitCodeMusical ensemblePersonal identification numberQuicksortLibrary (computing)Projective planeSlide ruleModule (mathematics)Dynamical systemGastropod shellMessage passingComputer animationLecture/Conference
Transcript: English(auto-generated)