Date post: | 10-May-2015 |
Category: |
Technology |
Upload: | apigee |
View: | 3,289 times |
Download: | 1 times |
API Design Tour:Dell
Brian Mulloy@landlessness
Apigee@apigee
Round Rock, Texas, USA
groups.google.com/group/api-craft
youtube.com/apigee
slideshare.net/apigee
@landlessness
@Dell
@apigee
@ravichittur @ctboyland@sbelekar
What does your company do?
Why do you have an API? How did it get started?
Who are your target developers? Internal? Partners? Open?
How is your API used?
What is your API design philosophy?
Which aspects of the API design have generated the most discussion internally and externally?
How do you approach URI design?
<?xml version="1.0" encoding="utf-8"?><GetAssetSummaryResponse xmlns=http://tempuri.org/> <GetAssetSummaryResult xmlns:a="http://schemas.datacontract.org/2004/07/Dell.AWR.Domain.Asset"xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <a:Faults/> <a:Response xmlns:b="http://schemas.datacontract.org/2004/07/Dell.AWR.Domain.Asset.Mobile"> <b:DellAsset> <b:AssetParts> <b:AssetPart> <b:PartDescription>Processor,T9550,2.66,6MB,Core Penryn,35W,E0</b:PartDescription> <b:PartDescriptionRefined>Processor, T9550, 2.66, 6MB, Core Penryn, 35W, E0</b:PartDescriptionRefined> <b:PartNumber>H185K</b:PartNumber> <b:Quantity>1</b:Quantity>
Response
/content/customize/v2/{app_root}/{file}.(xml|json)
URI Examples
/support/assetinfo/v2/summary.xml?svctags=2sqs3bs
How do you handle multiple formats? What is your default?
/support/assetinfo/v2/summary.xml
/support/assetinfo/v2/summary.json
XML is the default.
How do you handle pagination?
https://sandbox.api.dell.com/support/assetinfo/v2/summary.xml?svctags=2sqs3bs&limit=20&offset=1
Limit & Offset
How do you handle metadata in your responses?
How do you handle counting?
How do you approach HTTP Verbs?
Which convention do you use for response attribute names?
How do you handle errors?
<Code>eAPI-40420</Code><Message>Resource Not Found</Message><Reason>Failed to find the resource: ${Config File Name} for API: ${APIName}</Reason><Source>Gateway</Source>
Typical Error Response Template
200 301 302 400 500
HTTP Status Codes
How do you handle versions?
/support/assetinfo/v2/header.{xml/json}
How do you handle backwards compatibility, deprecation and obsolescence?
How do you handle search?
What design flourishes are you proud of?
What changes have you made to your design because it was confusing for developers?
What are your top level sub domain names for your API and your developer portal?
http://api.dell.com/
http://developer.dell.com/
Currently API & developer portal are internal only.
How do you handle authentication and authorization?
How do you handle SDKs and code libraries?
How have performance considerations impacted your API design?
What challenges can API Teams anticipate as they implement their API initiatives?
What is on your API roadmap?
What else should we know about your API?
Questions from audience?
THANK YOUSubscribe to API webcasts at:
youtube.com/apigee
THANK YOUQuestions and ideas to:
groups.google.com/group/api-craft