A public web app is an official API, thought primarily to be used by humans; but built using protocols such that it's possible to be used by programs on behalf of humans ..
You access HN by your browser, the same as Zenefits' customers accessed ADP services indirectly ..
The point is where to put the line between what's a good allowed access, and a bad too-much-indirection access
Ok, let's for the sake of argument grant you that a public web app is an official interface (I'm not saying API because it's not a "programming" interface). The implied contract is that humans will continue to be able to use the web app to access the functionality it's intended to provide. Anything in the HTML is an implementation detail, not part of the contract, and is subject to change at any time, so long as the contract (human usability) is still fulfilled. This is why web scraping is such a risky proposition: the structure of the page may change at any time without violating the implied contract of a human being able to use the web page.
The existence of a public interface usable by humans (a web app) does not in any way imply the existence of a machine-usable protocol for accessing that same functionality. If you infer one, you do so at your own risk. By the same token, the existence of a machine-usable interface that is not public does not imply a contract that it will continue to exist.
If you build your business on an imagined contract, be prepared to have a bad day when the other "party" to the non-contract "violates" it.
> The existence of a public interface usable by humans (a web app) does not in any way imply the existence of a machine-usable protocol for accessing that same functionality.
Is that non-implication better for consumers? For people?
Comments
A public web app is an official API, thought primarily to be used by humans; but built using protocols such that it's possible to be used by programs on behalf of humans ..
You access HN by your browser, the same as Zenefits' customers accessed ADP services indirectly ..
The point is where to put the line between what's a good allowed access, and a bad too-much-indirection access
Ok, let's for the sake of argument grant you that a public web app is an official interface (I'm not saying API because it's not a "programming" interface). The implied contract is that humans will continue to be able to use the web app to access the functionality it's intended to provide. Anything in the HTML is an implementation detail, not part of the contract, and is subject to change at any time, so long as the contract (human usability) is still fulfilled. This is why web scraping is such a risky proposition: the structure of the page may change at any time without violating the implied contract of a human being able to use the web page.
The existence of a public interface usable by humans (a web app) does not in any way imply the existence of a machine-usable protocol for accessing that same functionality. If you infer one, you do so at your own risk. By the same token, the existence of a machine-usable interface that is not public does not imply a contract that it will continue to exist.
If you build your business on an imagined contract, be prepared to have a bad day when the other "party" to the non-contract "violates" it.
> The existence of a public interface usable by humans (a web app) does not in any way imply the existence of a machine-usable protocol for accessing that same functionality.
Is that non-implication better for consumers? For people?
If not, why should it exist?
Isn't that all the way around?
Machine-usable protocols is what make possible to humans use public interfaces (web apps)
When was the last time that you injected electricity to a cable to send a HTTP request?
How is that relevant? Putting up a web site does not obligate you to then do more just because it would be even better.