The document provides guidance on API design best practices. It recommends that APIs should be easy to use, consistent, follow standards, and have good documentation. APIs should do one thing well and be testable. Red flags include inability to find functionality or come up with good names. The document also discusses REST principles and levels, and provides opinions on improving the BringIt API, such as versioning, using HTTP verbs, and standardizing naming conventions.
These slides focus on documentation for REST APIs. See http://idratherbewriting.com for more detail. For the video recording, see http://youtu.be/0yfNd7tzH2Q. This deep dive is the second slide deck I used in the presentation.
API Workshop: Deep dive into code samplesTom Johnson
See http://idratherbewriting.com for more details. This was the third slidedeck I used in my presentation. Most of these slides repeat what I presented as a soap! conference webinar in Poland.
These slides focus on documentation for REST APIs. See http://idratherbewriting.com for more detail. For the video recording, see http://youtu.be/0yfNd7tzH2Q. This deep dive is the second slide deck I used in the presentation.
API Workshop: Deep dive into code samplesTom Johnson
See http://idratherbewriting.com for more details. This was the third slidedeck I used in my presentation. Most of these slides repeat what I presented as a soap! conference webinar in Poland.
Survival Strategies for API Documentation: Presentation to Southwestern Ontar...Tom Johnson
This is a presentation I gave to the Southwestern Ontario STC chapter on API documentation on Feb 2, 2015. For more details, see my blog at http://idratherbewriting.com. You can listen to the recorded presentation here: http://youtu.be/I8rGe2w1sAo.
An introduction to building basic APIs using Node.js and MongoDB. The deck covers the basics of designing an API for longevity, how to get started creating it using Node.js, and finally looking at how to connect to it from a client.
You can read more about Node.js and Mongo on our blog at http://blog.modulus.io.
This slide explains a simple Android library called Debot.
Debot offers features that are useful to debug Android applications. Those features can be added to any activity that has the toolbar menu. Also, developers can easily add their own custom debugging features with simple steps.
https://github.com/tomoima525/debot
API Documentation Workshop tcworld India 2015Tom Johnson
This is a workshop I gave on API documentation at tcworld India 2015. The workshop covers 3 main areas:
- General overview of API documentation
- Deep dive into REST API documentation
- Deep dive into Javadoc documentation
Application Programming Interface Implementation For Building Software Applic...SlideTeam
An application programming interface API is a communication protocol between various parts of a computer program designed to simplify software implementation and maintenance. This presentation provides the slides related to API Development and their Implementation in relation to the long term goals of the business. This presentation helps to Analyze the new Application Program Interface and helping managers and users to understand technical architects The main objective of this presentation is to give the company a new API Interface so that the company can implement that on their business operations. It will help them to achieve their targets in less time consumption. This presentation includes various slides related to the implementation of the Application Programming Interface which are API Portal, Roles, and User-based API Management, API Implementation strategies, Time estimate to develop an API, Comparison with competitors and many more. This presentation also helps to identify the effects of old API and positive impacts on the companys financials after the successful implementation of the Application Programming Interface. In the end, it also covers the dashboards related to Application Programming Interface, which can be used by the customers according to their requirements. https://bit.ly/38mvIk0
API stands for Application program interface. An API is the interface implemented by an application which allows other applications to communicate with it.
This presentation covers how to document REST APIs. For accompanying notes, see http://idratherbewriting.com/restapicourse. This presentation is geared towards technical writers. The focus is with REST APIs, not platform-specific APIs such as Java.
The Schema-first API design approach advocates for writing your API definition first in one of many API Specification languages before writing any code. This talk introduces you to the realm of Schema-First API design and how to get started with the OpenAPI ecosystem.
Publishing API documentation -- WorkshopTom Johnson
These slides are from the REST API documentation workshop that I gave at the STC Summit 2015. For more details, see http://idratherbewriting.com/publishingapidocs.
Appium Interview Questions and Answers | EdurekaEdureka!
**Appium Certification Training: https://www.edureka.co/appium-training-mobile-automation-testing **
This Edureka PPT on Top 50 Appium Interview Question will help you to prepare yourself for Software Testing Interviews. It covers questions for beginners, intermediate and experienced professionals.
Selenium Testing playlist: https://goo.gl/NmuzXE
Selenium Blog Series: http://bit.ly/2B7C3QR
Software Testing Blog Series: http://bit.ly/2UXwdJm
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Web API Design: Crafting Interfaces that Developers Love
******By Brian Mulloy******
****email Apigee @info*****
Application developers are the customers of a Web API. Success is measured by how quickly app developers enjoy success using your API in their applications. And rapid adoption of a Web API is all about design. This e-book will help you make design choices from the application developer’s point of view so that the benefits of proven design principles and best practices will make your initiative a success.
Survival Strategies for API Documentation: Presentation to Southwestern Ontar...Tom Johnson
This is a presentation I gave to the Southwestern Ontario STC chapter on API documentation on Feb 2, 2015. For more details, see my blog at http://idratherbewriting.com. You can listen to the recorded presentation here: http://youtu.be/I8rGe2w1sAo.
An introduction to building basic APIs using Node.js and MongoDB. The deck covers the basics of designing an API for longevity, how to get started creating it using Node.js, and finally looking at how to connect to it from a client.
You can read more about Node.js and Mongo on our blog at http://blog.modulus.io.
This slide explains a simple Android library called Debot.
Debot offers features that are useful to debug Android applications. Those features can be added to any activity that has the toolbar menu. Also, developers can easily add their own custom debugging features with simple steps.
https://github.com/tomoima525/debot
API Documentation Workshop tcworld India 2015Tom Johnson
This is a workshop I gave on API documentation at tcworld India 2015. The workshop covers 3 main areas:
- General overview of API documentation
- Deep dive into REST API documentation
- Deep dive into Javadoc documentation
Application Programming Interface Implementation For Building Software Applic...SlideTeam
An application programming interface API is a communication protocol between various parts of a computer program designed to simplify software implementation and maintenance. This presentation provides the slides related to API Development and their Implementation in relation to the long term goals of the business. This presentation helps to Analyze the new Application Program Interface and helping managers and users to understand technical architects The main objective of this presentation is to give the company a new API Interface so that the company can implement that on their business operations. It will help them to achieve their targets in less time consumption. This presentation includes various slides related to the implementation of the Application Programming Interface which are API Portal, Roles, and User-based API Management, API Implementation strategies, Time estimate to develop an API, Comparison with competitors and many more. This presentation also helps to identify the effects of old API and positive impacts on the companys financials after the successful implementation of the Application Programming Interface. In the end, it also covers the dashboards related to Application Programming Interface, which can be used by the customers according to their requirements. https://bit.ly/38mvIk0
API stands for Application program interface. An API is the interface implemented by an application which allows other applications to communicate with it.
This presentation covers how to document REST APIs. For accompanying notes, see http://idratherbewriting.com/restapicourse. This presentation is geared towards technical writers. The focus is with REST APIs, not platform-specific APIs such as Java.
The Schema-first API design approach advocates for writing your API definition first in one of many API Specification languages before writing any code. This talk introduces you to the realm of Schema-First API design and how to get started with the OpenAPI ecosystem.
Publishing API documentation -- WorkshopTom Johnson
These slides are from the REST API documentation workshop that I gave at the STC Summit 2015. For more details, see http://idratherbewriting.com/publishingapidocs.
Appium Interview Questions and Answers | EdurekaEdureka!
**Appium Certification Training: https://www.edureka.co/appium-training-mobile-automation-testing **
This Edureka PPT on Top 50 Appium Interview Question will help you to prepare yourself for Software Testing Interviews. It covers questions for beginners, intermediate and experienced professionals.
Selenium Testing playlist: https://goo.gl/NmuzXE
Selenium Blog Series: http://bit.ly/2B7C3QR
Software Testing Blog Series: http://bit.ly/2UXwdJm
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Web API Design: Crafting Interfaces that Developers Love
******By Brian Mulloy******
****email Apigee @info*****
Application developers are the customers of a Web API. Success is measured by how quickly app developers enjoy success using your API in their applications. And rapid adoption of a Web API is all about design. This e-book will help you make design choices from the application developer’s point of view so that the benefits of proven design principles and best practices will make your initiative a success.
This is a presentation inspired (heavily) by that of Joshu Bloch's presentation on "How to design a good API and its importance". I tried to simplify on API importance and tried to generify how to conceive it. No point referring to that presentation explicitly as I am mentioning it here and mentioned it at the start and end of the presentation as I made it in BASIS SoftExpo 2012
The Complete Guide to API Development in 2022.pdfConcetto Labs
Are you looking for an easy way to start building APIs? Then read our complete guide to API development in 2022. It covers everything from the basics to advanced topics like authentication and authorization.
Building APIs using Laravel - A simple approach to scale🤓 Steve McDougall
A lot of people are building APIs, and a lot of people are hitting the same issues. In this presentation I go through the common issues I have seen in scaling a Laravel API, and what you can do now to improve your own.
APIs do not have to be hard. But they do have to be stateless.
PayPal operates in 200+ countries. The complexity of region specific requirements and a disjointed offering led to a situation where PayPal Checkout API product suite got polluted with many overlapping capabilities and an API documentation that was hard to comprehend, incomplete and inconsistent making the integration experience much harder than it needed to be.
There was a strong desire to act upon the feedback that we have been hearing from our merchants and developer community to make a turn for the better.
This talk aims to explore
> When is the right time for organization to rethink their API and launch a new version.
> Considerations that go into creating a new version of an API that is so central to the way thousands of developers and merchants integrate with PayPal.
> Explore challenges in design, adoption, migration both internally and externally within the organization.
Building REST APIs that don't suck for modern day SPAsAbati Adewale
Front end applications have become increasingly powerful over the years and there’s been a shift in the approach of application architecture. As more single page frontend applications are being built, there is even more reliance on an API to power the logic of the entire application.
This talk covered the common practices, guidelines and tips to building a REST API that can be secure and easily accessible for Single Page Applications. We'd be going over using the right status codes, structure of endpoints and much more.
The presentation was made for a live talk on nomadphp.com
Goal:
Minimize technical debt, code changes, and rewrites. Show stakeholders and customers the developing or fully-implemented UI as early as possible.
How:
Fake the backend. Then when the UI code is completely done, make the backend real.
apidays LIVE Helsinki & North 2022_How to Win Friends and Influence People wi...apidays
apidays LIVE Helsinki & North: API Ecosystems - Connecting Physical and Digital
March 16 & 17, 2022
How to Win Friends and Influence People with API First
Arlemi Turpault, Senior Developer Advocate at Postman
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
3. Good APIs are designed with end
users in mind
● Ease of use is important!
● The API should be clear and consistent
●
If you had to guess where you might find a particular piece of
functionality you should be able to guess correctly or be fairly close!
● Design against standards and don’t invent
your own
○
Do this for the same reasons we all agree to use frameworks.
● Good documentation is vital
4. What should an API do?
●
●
●
●
●
be easy to learn and use
should be difficult to misuse
should be easy to evolve over time
should do one thing and do it well
should be easy to explain - if not, perhaps it’
s not doing one thing well?
● lend itself to reuse to avoid having other
programmers warp the API to deal with it in
a sane way
5. An API should be testable
APIs should be testable (yes, I repeated that)
By testable I mean that one should be able to
write integration tests which demonstrate
working API calls
In contrast, unit test should be mocked
6. An API should be testable
In addition to documentation, APIs should have
a site where developers can interactively test
individual API calls
7. API Red Flags
● It’s a red flag when you can’t find what you’
re looking for in an API
● … and when you can’t come up with a good
name for the API call
● Good API names are vital!
“The names are the API talking back to you - so
listen to them.” - Joshua Bloch, Google Talks,
Jan 2007
10. Why does this matter?
Because we can learn from
what others are doing
11. Almost all APIs in the wild follow an
architectural approach, called REST
● REST, stands for REpresentational State
Transfer. REST isn’t a standard, but rather
an architectural approach / recommendation
● Most APIs claiming to be REST don’t fully
implement REST concepts
● There are three widely accepted levels of
REST, most APIs implement most of the first
level, some implement parts of the second
level, and only few implement the third level
of the recommendations
12. Levels of REST
Leonard Richardson described these three
levels of REST which is known today as the
Richardson Maturity Model
Level One: is all about treating URIs as
resources.
https://domain.com/api/v1/profile/uid/1
returns a profile with a UID of 1
13. Levels of REST
Level Two: is about using HTTP verbs to
define actions on resources
GET https://domain.com/api/v1/profile/uid/1
PUT https://domain.com/api/v1/profile/uid/1
POST https://domain.com/api/v1/profile/uid/1
DELETE https://domain.com/api/v1/profile/uid/1
14. Levels of REST
Level Three: is about using hyperlinks in the
data returned to allow for the navigation of
URIs
Example:
{
“href”: “https://site.com/api/v1/profile/uid/1”
:…
}
15. REST usage
As mentioned earlier, most APIs don’t fully
implement REST
● Most expose resources - so level one
support is almost a given
● For level two, most only support HTTP
GET/POST - many lack support for PUT and
DELETE
● Level three support for Hyperlinks is
unsupported by most APIs
16. REST vs. RESTful
So lack of full REST support (buy in) results in
varied support of REST. We say that an API is
RESTful if it attempts to follow REST
guidelines, namely level one and two on the
Richardson Maturity (scale) Model
It turns out that even limited REST support can
lead to some consensus regarding API
construction. This is a GOOD thing!
21. Good News!
As I reviewed the BringIt API I realized it’s
actually in pretty good shape - for a first pass!
With some improvements we’ll have a version 2
API that will be easier to use and model what
others are doing
This will make it more easily accepted by
external developers who already have
experience with industry APIs
26. Disclaimer for the last set
of slides
That data dump represents Django views
some of which are not actual API call
27. Some of what follows is
opinionated...
But all of it is up for discussion!
28. API Path should be separate
This would provide a logical place to look when
trying to understand the API layout
Would allow for a separation between views
and API. It might be desirable to have view
handlers which are not considered public API
29. API Path should be separate
The API shouldn’t necessarily have a direct 1-1
relationship to a specific data model
Examples:
https://bringit.com/api/member
https://api.bringit.com/member
30. APIs should be versioned
consider:
https://www.bringit.com/api/v1/mission
31. Module names could be singular
rather than plural
Examples:
● appmessage instead of appmessages
○ or better yet: /mesage
● mission instead of missions
● tournament instead of tournaments
32. Avoid using abbreviations in URIs
Abbreviations introduce conceptual overhead,
which doesn’t help when trying to keep things
simple and clear
Examples:
● appmessages: u/read, u/delete, b/read
33. Names used in API should be
lowercase
Currently mixed case is used which leads a
developer to wonder where mixed case is used
and where it is not
34. Standardized API names
● Use lowercase: rematch
● Don’t use camel case: wagerAmounts
● Don’t use snake case: inbox_open
Above all - be consistent!
35. Consider using actual HTTP returns
values
In our API we almost always return HTTP 200
when we should consider returning HTTP 201
and other values such as 40x and 50x
The idea is that an HTTP client should be able
to correctly process HTTP messages without
having to examine the JSON payload
36. Use HTTP action verbs to minimize
API bloat
In appmessages we have u/read and u/delete
Using HTTP action verbs we would have:
GET https://bringit.com/api/v1/appmessage/
and
DELETE https://bringit.com/api/v1/appmessage
* appmessage is the resource and GET and DELETE are actions against the
resource
37. Use HTTP action verbs to minimize
API bloat
HTTP PUT can be used to queue messages
and HTTP POST can be used to update
existing messages
This saves us from potentially creating API
such as:
●
●
●
●
appmessage/readmessage
appmessage/deletemessage
appmessage/addmessage
appmessage/updatemessage
38. Use HTTP action verbs to minimize
API bloat
● One of the biggest reasons why developers
don’t use PUT and DELETE is because it’s
not supported by older web browsers
● Few developers know that there are workarounds for this:
○ Simply add an HTTP header called X-HTTP-MethodOverride:
■ X-HTTP-Method-Override: PUT
■ X-HTTP-Method-Override: DELETE
○ Google it for more info!
39. API should be grouped by resource
type
When deciding how an API call should be
grouped ask the question:
What type of resource is this?
Don’t overload groups
Example:
see the members django application
40. API should be grouped by resource
type
gifting, invite, challenge, facebook, should all
be in their own group
Examples:
fbshare should be /facebook/share and should
probably not be found under the member group
Same applies to lots of the API found in the
member
41. Resource types should not be
described by multiple names
User and Member are confusing
If goal is to avoid confusion with Django user
then member should be used exclusively
42. Avoid the use of compound API
names
Example:
● in challenge: wagerAmount
● in user: linkedfriends, invitesent
43. Avoid having both single and plural
versions of an API name
Examples:
● wagerAmount and wagerAmounts
A single resource “wager” should return a
single wager when and id is provided and a list
of wagers when an id is not provided
44. Avoid use of action words in API
Example:
● In challenge the word create is used for
solo_create and h2h_create only parameters
differ
When possible use HTTP VERBS to specify
actions
45. APIs should have a private and
public face
Private APIs (those starting with dev_) should
be controlled by policies on the web server
This allows for private APIs to be called from
known IPs / gateways and blocked from public
use
46. Rename dev_ API calls
Private APIs are still API calls like any other. In
fact, many APIs might be used internally
between distributed infrasture components and
not exposed for general or external use
Visibility should be controlled by web server
policies
47. Bandwidth optimizations
Consider using ?_body=false to tell the server
that you don’t care about a returned response
body and that you’ll instead look at the HTTP
return code only
Add support for selective field retrieval using
sets, example:
https://domain.com/api/v1/user?fields=(UID,
firstName,lastName)
48. Bandwidth optimizations
Consider returning results in batches, ala
paging
So return first 20 items then allow client to
request next 20 items etc… Also allow client to
specify how many items it would like to receive
This allows for overriding small batches if
necessary
49. Topics for future consideration
● API rate metering
● Extended security (OAuth)
50. Closing thoughts
Today APIs are in widespread use
We don't need to look far for examples of clean
APIs
Many packages exist for your programming
language of choice which help simplify using
RESTful services