The api-design tag has no wiki summary.
22
votes
3answers
848 views
What's so bad about the DOM?
I keep hearing people (Crockford in particular) saying the DOM is a terrible API, but not really justifying this statement. Apart from cross-browser inconsistencies, what are some reasons why the DOM ...
14
votes
4answers
282 views
Database abstraction — is it being overdone?
After being exposed to numerous database abstraction layers, I'm starting to wonder what the point is of every library inventing their own different paradigm to access data. Picking up a new DAL feels ...
11
votes
7answers
538 views
Why does the Java collections APIs not have a last method?
This is for ordered collections e.g. java.util.List. Why did the language designers not include a last method? The only reasons I can think of are:
ambiguity when the collection is empty (return ...
9
votes
2answers
163 views
Is the 'Law of Demeter' applicable to public/API method signatures?
Given that changes to the API/public method signature should be minimal to prevent breaking those client codes that use these methods, I was wondering if the Law of Demeter is less applicable to ...
9
votes
3answers
992 views
Is there a list of common usernames to reserve in a new system?
I need to reserve usernames in my new website.
These generally fall into three categories
1) usernames no-one should have (eg: admin, user, service, help, root, etc)
2) names of super famous people ...
9
votes
6answers
1k views
What do great APIs have in common?
What is it about great APIs that makes them great? I think that adhering to the "do one thing and do it well" mantra is a good sign and being is a good mapping to the problem domain is important, but ...
5
votes
9answers
300 views
Populate fields or return object
What is better to do in this type of scenario: populate fields or return an object?
The situation is like this: I'm doing calculations to find the prices (inc tax, ex tax, discounted etc) of a ...
5
votes
4answers
240 views
How best do you represent a bi-directional sync in a REST api?
Assuming a system where there's a Web Application with a resource, and a reference to a remote application with another similar resource, how do you represent a bi-directional sync action which ...
5
votes
1answer
90 views
Sending a collection of data to an API. Multiple small calls vs one big call
I am currently creating an API and implemented a few basic REST actions such as get, update, search etc. Another program that collects data needs to synchronize these to this API. My current thought ...
5
votes
3answers
301 views
Should I provide synonyms in an API?
I'm designing a small library and there is a strong temptation to provide synonyms to some of the exported functions.
var foldl = function(){ ... };
var reduce = foldl; //reduce is a synonym for ...
5
votes
7answers
373 views
What are some well-written articles/books/etc. on API design approaches? [closed]
Apologies for the somewhat general question, but I’ve been reading a few of the links on this page, and many of them:
spend time explaining what an API is
are a bit general and vague
are rather ...
4
votes
3answers
134 views
Creating a webservice API - how much “credit” should I give the client/developer
When creating a web service API, how much should I count on the developer to act by my rules?
We are really aimed on creating an API so the developers shouldn't develop client side logic too much...
...
3
votes
7answers
322 views
Better name for existsByUserNameAndPassword()
I wonder if there is a better name for a DB API function called existsByUserNameAndPassword() which returns boolean. There are more function called like this: existsByOldId()... It sounds a little bit ...
3
votes
1answer
101 views
How should I deal with external data sinks?
I recently took on a contract job that will largely involve generating data feeds from my client's data and sending it to external partners, via feeds and API invocations.
I've always found this ...
3
votes
1answer
158 views
Mask oAuth API key and token for pure client-side technologies
If I were to build a Twitter or Facebook application using pure client-side technologies like HTML and javascript, how would I mask/hide my API keys?
For example, for Twitter I have consumer key and ...