Creating maintainable APIs : a practical case-study approach /

Saved in:
Bibliographic Details
Author / Creator:Varga, Ervin (Professional software engineer)
Imprint:Berkeley, CA : Apress, 2016.
Description:1 online resource (295 pages)
Language:English
Subject:
Format: E-Resource Book
URL for this record:http://pi.lib.uchicago.edu/1001/cat/bib/11269005
Hidden Bibliographic Details
ISBN:9781484221969
1484221966
1484221958
9781484221952
9781484221952
Digital file characteristics:text file
PDF
Notes:Case Study: Testing with a Level 3 Tool.
Print version record.
Summary:This book explains the importance of having straightforward and maintainable APIs in order for services to be usable and maintainable. Although, the focus is on services, this book also emphasizes how the core principles apply even to bare classes. The overall context of this book is to classify the topics into 4 main areas: classes and interfaces, HTTP REST APIs, messaging APIs, and message payloads (XML, JSON and JSON API as well as Apache Avro). Here is what you'll learn: What are Object-Oriented design constructs and their APIs How to create and manage the HTTP REST APIs How to create and manage maintainable messaging APIs, including the use of Apache Kafka ad a principle messaging hub How to handle message payloads via JSON mostly And more.
Other form:Print version: Varga, Ervin. Creating Maintainable APIs : A Practical, Case-Study Approach. Berkeley, CA : Apress, ©2016 9781484221952
Standard no.:10.1007/978-1-4842-2196-9
Table of Contents:
  • At a Glance; Contents; About the Author; About the Technical Reviewers; Acknowledgments; Introduction; Chapter 1: Information Hiding and APIs; Entropy and Its Impact on Assumptions; Case Study: API for Calculating an Integral of a Function; Version I: Direct Summation (Riemann Sum); Version II: Simpson's Rule; Version III: Romberg's Method; Summary; References; Chapter 2: Modular Design; API-Driven Development; Use Case; Abstraction; Data; Encapsulation; Type Coercion Case Study; Use Case: Coercing Arguments; Type Coercion Module; Standard Java's Limitations.
  • OSGi as a Disruptive TechnologyOSGi in Action; Modular Integral Calculation; The Architecture of the System; The Provider API; Direct Summation Provider; The Client API; Demo; Summary; References; Chapter 3: Designing Classes for Reuse; Case Study: Client of Reuse; Version I; Version II; Version III; Conclusion; Case Study: Provider of Reuse; Summary; References; Chapter 4: TDD as an API Design Technique; Case Study: TDD Doesn't Replace OOD Principles; Conclusion; Case Study: Tests Are Rubbish Without TDD; Case Study: Retrofitting Tests to Follow TDD; Case Study: Introduction to BDD.
  • Case Study: TDD for APIs Is a Complex TopicThe Subtleties of the Spliterator API; Checking for API Incompatibilities Between Different Versions; Postprocessor as a Rescue for Bugs; Better Serialization Support; Performance Guarantees Are Mandatory; The Reworked Version Ready for Publication; Summary; References; Chapter 5: Identifying Resources; Case Study: Problem Reports Microservice; Discovering and Describing Resources; Rapid Application Development (RAD) Tactic; Name Reconciliation; Summary; References; Chapter 6: Versioning REST APIs; The Main Traits of REST API Versioning.
  • Altering the Resource URLsAPI Keys as a Way to Control Versioning; The Importance of Stable UR[IL]s; Versioning of Media Types; Versioning of Profiles; Switching API Versions; Upgrading the HTTP Version; Summary; Reference; Chapter 7: Encoding Actions on Resources; Implementing the Core Features; Interaction of Resources via Hypermedia Controls; Skeleton of the Service; The Remaining Representations and Controllers; Smoke Testing the Service; Adding an Ontology; Summary; References; Chapter 8: Implementing Synchronous and Asynchronous REST APIs; Client-Controlled Asynchrony.
  • Server-Controlled AsynchronyCase Study: Favorite Problem Report; Summary; Reference; Chapter 9: Documenting REST APIs; Case Study: Attempting the Universal Method; Case Study: Producing a Swagger API Specification; Extending the Service to Implement This New Specification; Smoke Testing the Service; Generating the Dynamic HTML Client; Summary; Reference; Chapter 10: Testing REST APIs; Case Study: Testing with a Level 2 Tool; Examine the Service Use Case; Find General Information Use Case; Delete a Problem Report Use Case; Load Testing the Examine the Service Use Case.