Need for machine-readable Application Interface


CF Runtime
 

Hey Deepak,

We are talking only about the Cloud Controller API. Those APIs would be
available to all developers. We're not sure what you are looking for beyond
that.

Joseph & Zak
CF Runtime Team

On Wed, Jun 17, 2015 at 10:27 AM, Deepak Vij (A) <deepak.vij(a)huawei.com>
wrote:

Hi Zak and Joseph, thanks for your response. Would this capability be
available only for Cloud Controller API or for rest of the platform API set
as well? Also, would the same capability be available for end application
developers (PaaS developers) so that the same application interface
metadata is generated across the board within CF PaaS environment - that
was my key goal for this discussion (something like JSON Schema for Heroku).

As I mentioned earlier that having a standardized application interface
such as WADL/JSON/Swagger/RAML allows us to enforce Deployment Governance
at the time of deploying applications within Cloud Foundry. In order to be
able to expose business capabilities such as Telecom APIs, Deployment
Governance (i.e. API Versioning & Backward Compatibility, Dependency
Management, and other API Policy Validations etc.) is very important
requirement not just for telecom industry but for any industry planning to
monetize their APIs created within CF PaaS environment. Thanks.

Regards,
Deepak Vij

----------------------------------------------------------------------

Message: 1
Date: Tue, 16 Jun 2015 15:04:53 -0700
From: CF Runtime <cfruntime(a)gmail.com>
To: "Discussions about Cloud Foundry projects and the system overall."
<cf-dev(a)lists.cloudfoundry.org>
Subject: Re: [cf-dev] Need for machine-readable ?Application
Interface?
Message-ID:
<CAOb01c9s=qAG66YJ+vdh8g8R4=
HU_BX3ee1_5msNPNt1QuNBQg(a)mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

It is something we are thinking about for the V3 cloud controller API, but
no formal decisions have been made at this point. So feedback and
suggestions are certainly welcome.

Zak and Joseph
CF Runtime Team

On Tue, Jun 16, 2015 at 2:51 PM, Deepak Vij (A) <deepak.vij(a)huawei.com>
wrote:

Hi folks, I would like to start a thread on the need for
machine-readable ?*Application Interface*? supported at the platform
level. Essentially, this interface describes details such as available
methods/operations, inputs/outputs data types (schema), application
dependencies etc. Any standard specifications language can be used for
this purpose, as long as it clearly describes the schema of the requests
and responses ? one can use Web Application Description Language (WADL),
Swagger, RESTful API Modeling Language (RAML), JSON Schema (something
like *JSON
Schema for Heroku Platform APIs*) or any other language that provides
similar functionality. These specifications are to be automatically
derived
from the code and are typically part of the application development
process
(e.g. generated by the build system).



Such functionality can have lots of usage scenarios:

1. First and foremost, Deployment Governance for API Management
(our
main vested interest) ? API Versioning & Backward Compatibility,
Dependency Management and many more as part of the comprehensive telecom
API Management capabilities which we are currently in the process of
building out.

2. Auto-creating client libraries for your favorite programming
language.

3. Automatic generation of up-to-date documentation.

4. Writing automatic acceptance and integration tests etc.



From historical perspective, in the early 2000s when SOA started out, the
mindset was to author the application contract-first (application
interface
using WSDL at that time) and subsequently generate and author code from
the
application interface. With the advent of RESTful services, REST
community
initially took a stand against such metadata for applications. Although,
a
number of metadata standards have none-the-less emerged over the last
couple of years, mainly fueled by the use case scenarios described
earlier.



Based on my knowledge, none of this currently exists within Cloud Foundry
at the platform level. It would be highly desirable to have a standard
common ?*application interface*? definition at the platform level,
agnostic of the underlying application development frameworks.



I hope this all makes sense. I think this is something could be very
relevant to the ?Utilities? PMC. I will also copy&paste this text under
?Utilities? PMC-notes on the github.



I would love to hear from the community on this. Thanks.



Regards,

Deepak Vij
_______________________________________________
cf-dev mailing list
cf-dev(a)lists.cloudfoundry.org
https://lists.cloudfoundry.org/mailman/listinfo/cf-dev


Deepak Vij
 

Hi Zak and Joseph, thanks for your response. Would this capability be available only for Cloud Controller API or for rest of the platform API set as well? Also, would the same capability be available for end application developers (PaaS developers) so that the same application interface metadata is generated across the board within CF PaaS environment - that was my key goal for this discussion (something like JSON Schema for Heroku).

As I mentioned earlier that having a standardized application interface such as WADL/JSON/Swagger/RAML allows us to enforce Deployment Governance at the time of deploying applications within Cloud Foundry. In order to be able to expose business capabilities such as Telecom APIs, Deployment Governance (i.e. API Versioning & Backward Compatibility, Dependency Management, and other API Policy Validations etc.) is very important requirement not just for telecom industry but for any industry planning to monetize their APIs created within CF PaaS environment. Thanks.

Regards,
Deepak Vij

----------------------------------------------------------------------

Message: 1
Date: Tue, 16 Jun 2015 15:04:53 -0700
From: CF Runtime <cfruntime(a)gmail.com>
To: "Discussions about Cloud Foundry projects and the system overall."
<cf-dev(a)lists.cloudfoundry.org>
Subject: Re: [cf-dev] Need for machine-readable ?Application
Interface?
Message-ID:
<CAOb01c9s=qAG66YJ+vdh8g8R4=HU_BX3ee1_5msNPNt1QuNBQg(a)mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

It is something we are thinking about for the V3 cloud controller API, but
no formal decisions have been made at this point. So feedback and
suggestions are certainly welcome.

Zak and Joseph
CF Runtime Team

On Tue, Jun 16, 2015 at 2:51 PM, Deepak Vij (A) <deepak.vij(a)huawei.com>
wrote:

Hi folks, I would like to start a thread on the need for
machine-readable ?*Application Interface*? supported at the platform
level. Essentially, this interface describes details such as available
methods/operations, inputs/outputs data types (schema), application
dependencies etc. Any standard specifications language can be used for
this purpose, as long as it clearly describes the schema of the requests
and responses ? one can use Web Application Description Language (WADL),
Swagger, RESTful API Modeling Language (RAML), JSON Schema (something like *JSON
Schema for Heroku Platform APIs*) or any other language that provides
similar functionality. These specifications are to be automatically derived
from the code and are typically part of the application development process
(e.g. generated by the build system).



Such functionality can have lots of usage scenarios:

1. First and foremost, Deployment Governance for API Management (our
main vested interest) ? API Versioning & Backward Compatibility,
Dependency Management and many more as part of the comprehensive telecom
API Management capabilities which we are currently in the process of
building out.

2. Auto-creating client libraries for your favorite programming
language.

3. Automatic generation of up-to-date documentation.

4. Writing automatic acceptance and integration tests etc.



From historical perspective, in the early 2000s when SOA started out, the
mindset was to author the application contract-first (application interface
using WSDL at that time) and subsequently generate and author code from the
application interface. With the advent of RESTful services, REST community
initially took a stand against such metadata for applications. Although, a
number of metadata standards have none-the-less emerged over the last
couple of years, mainly fueled by the use case scenarios described earlier.



Based on my knowledge, none of this currently exists within Cloud Foundry
at the platform level. It would be highly desirable to have a standard
common ?*application interface*? definition at the platform level,
agnostic of the underlying application development frameworks.



I hope this all makes sense. I think this is something could be very
relevant to the ?Utilities? PMC. I will also copy&paste this text under
?Utilities? PMC-notes on the github.



I would love to hear from the community on this. Thanks.



Regards,

Deepak Vij