Ask Slashdot: Best API Management System?
An anonymous reader writes: I've landed a summer internship with a software firm that has a library of APIs available to current and potential customers. One of my team's tasks is to make recommendations on how to improve the developer portal, which not only provides a testing sandbox and documentation, but is also a source of sales leads for the company's business units. Mashery was the original choice for this task, but there are some limitations: some types of customers don't need to see all of the API in the library, and different business units have different goals for this developer platform when it comes to sales and marketing. What solutions work best to provide scaleable, customizable access?
It is by will alone I set my mind in motion. It is by the juice of sapho that thoughts acquire speed, the lips acquire stains, the stains become a warning. It is by will alone I set my mind in motion.
and different business units have different goals for this developer platform when it comes to sales and marketing
When you let sales and marketing drive technical decisions, brace for failure.
Years ago I worked for mini-computer maker Data General (a.k.a "Data Who"). One of the things that took down that company was the the engineers, architects and designers built amazing technology that was far ahead of anyone else. Then marketing would come in and say "Fantastic! Great Job! Now we just need you to remove this feature and that feature, because. as it is. this machine out preforms that bigger, older, more expensive system that we are already selling." Look where that company is now.
I'm an American. I love this country and the freedoms that we used to have.
https://tyk.io/
-- MartinG To mail me: echo kewyjlcxyzvjfxbqwh | tr bcefhjklqvwxyz
Was your job at Dice Holdings, Incorporated, Mr. "Anonymous" Reader?
It is the only thing I'd ever be happy with you doing. Thanks
and different business units have different goals for this developer platform when it comes to sales and marketing
What the hell is this, amateur hour? Either everyone needs to get on the same page, or separate companies need to be formed to market and sell this Swiss-army-knife of APIs to the disparate sales and marketing goals of these different business units. How the hell does a business unit within a company have different sales and marketing goals than the parent company? Oh yeah, they don't or the whole company fails! Sounds like you need to find a new job with a company that isn't run by complete morons.
Well, obviously any API management system needs a "share" button at the bottom of each screen so you can share your favorite API methods with your friends on Twitter, Facebook and Google+.
The world's burning. Moped Jesus spotted on I50. Details at 11.
World hunger, time travel, and eradication of diseases have all been accomplished by using WordPress! Ask a ridiculous question, get a ridiculous answer. Good thing you're an intern because after 3 months of nonsensical bullshit you'd be ready to quit anyway.
Farewell. You did nothing wrong and you were just fine. It's faggots at Dice who masturbate to change for the sake of change.
Sounds like its bigger on the inside.
I've seen a few very good ways of doing this, but recently two products have grabbed my attention. Apigee.com used to have a amazing free service for exploring apis for various sites (like facebook and others that I've had to use). I can't seem to find a good link to it just now. However the product that I use at work for this is Postman (www.getpostman.com)
>> some types of customers don't need to see all of the API in the library
Don't try to go down that road. If you start hiding functions through obscurity, they will pop out anyway (through code samples, forums, reverse engineering, pentesting, etc.) and will only lead to bad things (developers pissed at you for "crappy, incomplete documentation," customers laughing at you for "trying to hide the best stuff," salespeople people yelling at you for not exposing something you've already written but they didn't know they needed until they walked out of a customer meeting, top executives yelling at everyone when a security researcher finds a big flaw in a rarely used function call that everyone forgot about).
Signed,
Dude With 15 Years Experience With Web APIs
(Who Has Had Much Of This Happen To Him Or His Company)
please do my job for me. Thank you.
Escher was the first MC and Giger invented the HR department.
There are a few services that can help you.
Check out APISpark (made by the Restlet team). It lets you publish and manage the API on the web, supports a lot of standards, and also has tools to actually help you create clients and server implementations.
Sounds like you are just looking for a good documentation tool, one that allows people to test the APIs live.
If that's what you want, then you should look at API Blueprint, RAML, and Swagger.
The Web is designed to not need APIs or dedicated documentation. You might have heard of REST - it's a set of constraints on network architecture designs, which are: client-server protocol, layered interface, caching, stateless connections, code-on-demand (e.g. Javascript), and a uniform interface (e.g. HTML). REST is defined by the principal author of HTTP, Roy T. Fielding.
Lots of people call themselves RESTful (Amazon, Twitter) but aren't even close. A RESTful service is pretty much just like a website: You enter at an entry point, then start following hyperlinks and filling out forms to manipulate the state of your client and the server (respectively).
If you have an existing plain-old-HTTP API, you might want to build a hypertext interface on top of it that users can browse and submit documents with. Use a hypermedia data format like JSON-LD, Hydra, or JSON Hyper-schema to expose machine-readable hypertext. HTML is perfectly fine too, and preferable if you want to navigate the API with a Web browser.
See:
http://martinfowler.com/articl...
https://web.archive.org/web/20...
http://www.amazon.com/RESTful-...
Wonder what the public key field is for?
Don't go play hide and seek with interfaces, just document everything properly and publish it for all to see.
This, by the by, is a core thing at Amazon: No matter what the API or the mechanism used to access it, document the whole thing, hold nothing back. NO HIDDEN APIs. It works. The question isn't "what does this customer need to see?" but the question is "what do we publish? it needs documenting."
Playing hooky with your customers and what information about your products they can access is what redmond does by reflex, and the results are widely known: Brittle software full of "internal" access methods and a well-deserved reputation for being hateful asshats that they will be struggling to get rid of for a long time yet.
Choose your own adventure: Which choice will you pick?
Take some Everware courses while you are at it.
Man pages worked nice to describe the POSIX API and all its extensions. Old fashioned, not sexy, but we target developers, right?
But I have hope it could be seen as bankable by management.
Back in the 80s I built a persistent OO systems with sophisticated ACL. We implemented it by finagling the message dispatch mechanism to make select methods on guarded classes error out instead of doing what they normally did. That was on Objective C so it was fairly easy to get to the dispatch table. Some equivalent of that plus a filter on what objects were returned pretty well did it.
If most of the code is already annotated to generate documentation for an existing tool, then it may be a lot of work to change to a different tool.
Doxygen, Javadoc, and Sphinx are tools that can be used for generating API documentation.
It really depends what language you are generating API docs for, and what the quality of existing interface documentation in the code is like.
Whatever you do, I think the key thing is to make sure that API level documentation is generated from the code, so that documentation gets maintained with the code.
At my old company, we rolled our own system using perl (or python or ruby or whatever you want) and Doxygen and autopod. This made a Javadoc-ish-looking website. Doxygen is pretty powerful in what is generated, based upon the source code decorators. So we nightly generated the HTML from our git and hg repos and threw that html docset into a templating system a web designer made for us. And we were able to make one doc set using only APIs that had certain keywords or @public=true in the comments, and then another website that revealed absolutely everything for the internal developers.
And to be honest it wasn't that hard. Maybe 2 days of scripting to get it done.
"You cannot find out which view is the right one by science in the ordinary sense." - C.S. Lewis on Intelligent Design
If your APIm service does not open APIs it will be very hard to build a developer portal that suit your needs. We work with IBM APIm, all developer portal functions are exposed via APIs and they ship an example in Drupal that you can shred apart and see all the APIs in action