Multiple Resources in a Collection - apigee

In the API Managment console, it is possible to put multiple resources in a single Proxy. Is that same capability available for App Services? I'd like to put multiple resources in a single collection.
Thanks.

When you create an api proxy you create a basepath (like /v1). You can then add resources within that group (/v1/resource).
See http://apigee.com/docs/api-services/content/add-and-configure-your-first-api

Related

System API design - questions

We're designing a new service orchestrator which will provide a multi-staged flow for the user and will be communicating with several foreign services internally.
I'm preparing API for it and I have a few questions:
The main flow will constitute of several web pages and each one of them will contain unique information extracted from several sources. Should we set several different API endpoints for each page or it's better to create a single endpoint which would internally decide what logic to execute based on stage/page number?
Is it ok to use POST requests for those endpoints where we could use GET, but the data there is ever-changing? I'm concerned about caching when I don't want to. Though I can always explicitly disable caching.

Creating Web Application for Corda Nodes Login

I have separated out the web servers from corda application.
I created a demo spring web application and moved REST APIs to web controller layer.
I am getting NodeRPCConnection using hard coded [for now] username/password/host/port. [hardcoded in properties file]
Now I have to implement production-grade User-Authentication/Login through web application.
I Would like to know ,
Whether there will be one web application require per corda node ?
or one web application serving all corda nodes ?
What are the recommendations/ suggestions for implementation of user
authentication/login [rpcuser].?
If i have separate system users , how do i map them to rpcusers ?
do i need to create a separate db in middle layer for this mapping ?
To access corda node we always need to get NodeRPcConnection before invoking different flows.
so How we should move incoming traffic [ Dynamically ] to particular corda node ?
Any suggestions / guidelines will be helpful.
Thanks.
It sounds like you plan to run lots of nodes yourself? It's really up to you how you structure this - there's no one right answer. If your nodes are run by different organisations then they'd run one web server internally for each of them.
If you're running lots of nodes on behalf of others, you would probably use a separate RPC connection for each potential identity that's being controlled from the web app, as we're working on support for multiple identities per node so in future you would only need one node, and you'd be able to act as different identities by using different RPC users.

Sylius Grid Bundle over Api Response

I have several projects (on local / Amazon EC2) for various purposes.
The one on EC2 hold the main DB and is accessible through an API, exposing most of my Resources.
I need to display on ALL of my instances Grids to interact with these resources.
Easy on the EC2, but can't find a way with SyliusGridBundle to Map to an Api response.
Is it even possible ?

Separate APIM Stores in internal and DMZ network

We'd like to create separate APIM stores in our internal network and DMZ. I've been going through the documentation, and I've seen you can publish to multiple store (https://docs.wso2.com/display/AM200/Publish+to+Multiple+External+API+Stores) but this is not exactly what I'm looking for, since you need to visit the "main" store to subscribe to an API.
I'd like to have the option from a single publisher instance to check of to which stores an API must be published. Much like the way you can decide to which API gateways you publish your APIs.
Any thoughts or help on this would be great.
Thanks,
Danny
Once API is published in publisher api artifacts are stored in registry which is shared between store and publisher. API store get artifacts from this registry and display it. So
When create apis use tags to differentiate artifacts e.g tag DMZ, Internal
Modify the store to get artifacts based on tags and display

How to access file from another application's directory on Bluemix?

This is my problem scenario :
1.Create 2 apps.
2.App1 continuously pulls tweets and stores the json file in its /data folder.
3.App2 picks up the latest file from the /data folder of App1 and uses it.
I have used R and its corresponding build-pack to deploy the app on bluemix.
How do I access /data/file1 in App1 from App2 i.e. can I do something like this in the App2 source file :
read.csv("App1/data/Filename.csv") ;
will bluemix understand what App1 folder points to ?
Bluemix is a Platform as a Service. This essentially means that there is no filesystem in the traditional sense. Yes, your application "lives" in a file structure on a type of VM, but if you were to restage or redeploy your application at any time, changes to the filesystem will be lost.
The "right" way to handle this data that you have is to store it in a NoSQL database and point each app to this DB. Bluemix offers several options, depending on your needs.
MongoDB is probably one of the easier and more straight-forward DBs to use and understand. Cloudant is also very good and robust, but has a slightly higher learning curve.
Once you have this DB set up, you could poll it for new records periodically, or better yet, look into using WebSockets for pushing notifications from one app to the other in real-time.
Either way, click the Catalog link in the Bluemix main navigation and search for either of these services to provision and bind them to your app. You'll then need to reference them via the VCAP_SERVICES environment object, which you can learn more about here.
You can't access files from another app on bluemix. You should use a database service like cloudant to store your json. Bind the same service to both apps.
Using something like Cloudant or the Object Storage service would be a great way to share data between two apps. You can even bind the same service to 2 apps.
Another solution would be to create a microservice that is your persistance layer that stores your data for you. You could then create an API on top of this that both of your apps could call.
As stated above storing information on disk is not a good idea for a cloud app. Go check out http://12factor.net, it describes no-no's for writing a true cloud based app.

Resources