[discussion] [contrib] Hypermedia API tools (with Sightly)

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

[discussion] [contrib] Hypermedia API tools (with Sightly)

Andrei Dulvac
Hi,

This is the first thread I initiate on sling dev, so I apologize in advance
if I'm breaking any conventions.

I've written a bundle that allows sling component developers to quickly
define a hypermedia API for components. The tools contain a Sightly Use
class for Sightly components, but also a generic utility that can be used
anywhere, like in a jsp component.

It uses hypermedia to drive the state of the application (e.g a consumer
uses links and forms to change the state) and uses microdata [0] to define
an easy to parse structure. The API can then be consumed by bots or used in
testing, while using the same HTML as the media type for the API as the
browser.

You can find the bundle here [1] if you'd like to have a look. The readme
has some examples and you can quickly try it out with a generic python
client [2].

What do you think about putting this in the contrib/ dir in sling and about
the idea in general?

Looking forward to some responses.

- Andrei Dulvac


---
[0] http://www.w3.org/TR/microdata/
[1] https://github.com/dulvac/hapi
[2] https://github.com/dulvac/hapi#consuming-the-api
Reply | Threaded
Open this post in threaded view
|

Re: [discussion] [contrib] Hypermedia API tools (with Sightly)

Bertrand Delacretaz
Hi Andrei,

On Fri, Jan 30, 2015 at 6:57 PM, Andrei Dulvac <[hidden email]> wrote:
> ...I've written a bundle that allows sling component developers to quickly
> define a hypermedia API for components. The tools contain a Sightly Use
> class for Sightly components, but also a generic utility that can be used
> anywhere, like in a jsp component...

That looks interesting, I think it would be a good contrib module for Sling.

I won't be able to manage the contribution at this time though,
hopefully somebody else will step up to do that.

-Bertrand
Reply | Threaded
Open this post in threaded view
|

Re: [discussion] [contrib] Hypermedia API tools (with Sightly)

Andrei Dulvac
Hi Bertrand,

Thanks for the response!

<[hidden email]> wrote:
> > ...I've written a bundle that allows sling component developers to
> quickly
> > define a hypermedia API for components. The tools contain a Sightly Use
> > class for Sightly components, but also a generic utility that can be used
> > anywhere, like in a jsp component...
>
> That looks interesting, I think it would be a good contrib module for
> Sling.
>
That's great. How could I go about seeing this happen?

> I won't be able to manage the contribution at this time though,
> hopefully somebody else will step up to do that.
>
I'd really appreciate that. As well as any feedback on the idea. We're
already using a variant of this internally at Adobe and I've been told
offline it would fit best if it were in Sling, as this is a generic way of
instrumenting a Sightly component.

Looking forward to some feedback.

Thanks,
Andrei


> -Bertrand
>
Reply | Threaded
Open this post in threaded view
|

Re: [discussion] [contrib] Hypermedia API tools (with Sightly)

Felix Meschberger-3
In reply to this post by Andrei Dulvac
Hi all

I just had a good discussion with Andrei on this topic. This really looks interesting and I even think this could be used as the basis for HTTP-based APIs.

I suggest you, @Andrei, create a Sling issue from where we can move forward.

Some more suggestions I already discussed with Andrei:

  * Investigate whether the HApiUse can be registered as a UseProvider service and thus not require to export it and also to make it easier to use, i.e. not having to know the fully qualified class name.
  * Having samples for JSP would be cool as well (We should also investigate how much a tag lib would help for JSP)

All in all, things we might consider moving forward working towards a first release and not blocking adoption by Sling.

And then: There HApi.js which IIUIC is used in the Node.js world to build web applications. We should investigate whether we would have to change the name of this feature.

To summarise: Thanks for the offer. Lets move this forward.

Oh, and yes: Do we have a volunteer to coach Andrei moving this contribution forward ? Thanks a lot !

Regards
Felix

> Am 30.01.2015 um 18:57 schrieb Andrei Dulvac <[hidden email]>:
>
> Hi,
>
> This is the first thread I initiate on sling dev, so I apologize in advance
> if I'm breaking any conventions.
>
> I've written a bundle that allows sling component developers to quickly
> define a hypermedia API for components. The tools contain a Sightly Use
> class for Sightly components, but also a generic utility that can be used
> anywhere, like in a jsp component.
>
> It uses hypermedia to drive the state of the application (e.g a consumer
> uses links and forms to change the state) and uses microdata [0] to define
> an easy to parse structure. The API can then be consumed by bots or used in
> testing, while using the same HTML as the media type for the API as the
> browser.
>
> You can find the bundle here [1] if you'd like to have a look. The readme
> has some examples and you can quickly try it out with a generic python
> client [2].
>
> What do you think about putting this in the contrib/ dir in sling and about
> the idea in general?
>
> Looking forward to some responses.
>
> - Andrei Dulvac
>
>
> ---
> [0] http://www.w3.org/TR/microdata/
> [1] https://github.com/dulvac/hapi
> [2] https://github.com/dulvac/hapi#consuming-the-api

Reply | Threaded
Open this post in threaded view
|

Re: [discussion] [contrib] Hypermedia API tools (with Sightly)

Andrei Dulvac
Hi,

Thanks a lot, Felix for the confidence vote.

I created *SLING-4513* to track this.

Any chance someone can help with this? The codebase is quite tiny.

Thank you,
Andrei




On Thu, Mar 12, 2015 at 12:34 PM Felix Meschberger <[hidden email]>
wrote:

> Hi all
>
> I just had a good discussion with Andrei on this topic. This really looks
> interesting and I even think this could be used as the basis for HTTP-based
> APIs.
>
> I suggest you, @Andrei, create a Sling issue from where we can move
> forward.
>
> Some more suggestions I already discussed with Andrei:
>
>   * Investigate whether the HApiUse can be registered as a UseProvider
> service and thus not require to export it and also to make it easier to
> use, i.e. not having to know the fully qualified class name.
>   * Having samples for JSP would be cool as well (We should also
> investigate how much a tag lib would help for JSP)
>
> All in all, things we might consider moving forward working towards a
> first release and not blocking adoption by Sling.
>
> And then: There HApi.js which IIUIC is used in the Node.js world to build
> web applications. We should investigate whether we would have to change the
> name of this feature.
>
> To summarise: Thanks for the offer. Lets move this forward.
>
> Oh, and yes: Do we have a volunteer to coach Andrei moving this
> contribution forward ? Thanks a lot !
>
> Regards
> Felix
>
> > Am 30.01.2015 um 18:57 schrieb Andrei Dulvac <[hidden email]>:
> >
> > Hi,
> >
> > This is the first thread I initiate on sling dev, so I apologize in
> advance
> > if I'm breaking any conventions.
> >
> > I've written a bundle that allows sling component developers to quickly
> > define a hypermedia API for components. The tools contain a Sightly Use
> > class for Sightly components, but also a generic utility that can be used
> > anywhere, like in a jsp component.
> >
> > It uses hypermedia to drive the state of the application (e.g a consumer
> > uses links and forms to change the state) and uses microdata [0] to
> define
> > an easy to parse structure. The API can then be consumed by bots or used
> in
> > testing, while using the same HTML as the media type for the API as the
> > browser.
> >
> > You can find the bundle here [1] if you'd like to have a look. The readme
> > has some examples and you can quickly try it out with a generic python
> > client [2].
> >
> > What do you think about putting this in the contrib/ dir in sling and
> about
> > the idea in general?
> >
> > Looking forward to some responses.
> >
> > - Andrei Dulvac
> >
> >
> > ---
> > [0] http://www.w3.org/TR/microdata/
> > [1] https://github.com/dulvac/hapi
> > [2] https://github.com/dulvac/hapi#consuming-the-api
>
>
Reply | Threaded
Open this post in threaded view
|

Re: [discussion] [contrib] Hypermedia API tools (with Sightly)

Radu Cotescu-3
Hi Andrei,

I'll try to guide you through the code contribution process, though at some
point you'll need the PMC's help.

First you would need to start a [VOTE] thread on sling-dev for integrating
your contribution into Sling's codebase (e.g. "[VOTE] accept Hypermedia API
tools into contrib"), reference SLING-4513 in this newly created thread and
attach your source code to SLING-4513 as a zip archive. It's useful to also
provide an md5 checksum file to make sure that people who will integrate
your code into Sling's codebase don't end up with a corrupted archive. You
need at least 3 +1 binding votes (coming from PMC members).

The next step is the IP clearance form [3], which is usually SLING's PMC
job, though you could help by providing them with a draft. An example of
this filled form can be found at [4]. You also need to sign and send an
iCLA form [5] to secretary [at] apache.org. If your code was developed at
Adobe you might also need to add your name to Adobe's Corporate CLA. This
IP stuff is usually tracked through another JIRA issue, usually created by
the sponsoring PMC member, that will block SLING-4513 until all the IP
issues are cleared.

Let me know if you need any other details.

Cheers,
Radu

[3] - http://incubator.apache.org/ip-clearance/index.html
[4] - http://incubator.apache.org/ip-clearance/sling-sightly-xss.html
[5] - https://www.apache.org/licenses/icla.txt

On 17 March 2015 at 17:30, Andrei Dulvac <[hidden email]> wrote:

> Hi,
>
> Thanks a lot, Felix for the confidence vote.
>
> I created *SLING-4513* to track this.
>
> Any chance someone can help with this? The codebase is quite tiny.
>
> Thank you,
> Andrei
>
>
>
>
> On Thu, Mar 12, 2015 at 12:34 PM Felix Meschberger <[hidden email]>
> wrote:
>
> > Hi all
> >
> > I just had a good discussion with Andrei on this topic. This really looks
> > interesting and I even think this could be used as the basis for
> HTTP-based
> > APIs.
> >
> > I suggest you, @Andrei, create a Sling issue from where we can move
> > forward.
> >
> > Some more suggestions I already discussed with Andrei:
> >
> >   * Investigate whether the HApiUse can be registered as a UseProvider
> > service and thus not require to export it and also to make it easier to
> > use, i.e. not having to know the fully qualified class name.
> >   * Having samples for JSP would be cool as well (We should also
> > investigate how much a tag lib would help for JSP)
> >
> > All in all, things we might consider moving forward working towards a
> > first release and not blocking adoption by Sling.
> >
> > And then: There HApi.js which IIUIC is used in the Node.js world to build
> > web applications. We should investigate whether we would have to change
> the
> > name of this feature.
> >
> > To summarise: Thanks for the offer. Lets move this forward.
> >
> > Oh, and yes: Do we have a volunteer to coach Andrei moving this
> > contribution forward ? Thanks a lot !
> >
> > Regards
> > Felix
> >
> > > Am 30.01.2015 um 18:57 schrieb Andrei Dulvac <[hidden email]
> >:
> > >
> > > Hi,
> > >
> > > This is the first thread I initiate on sling dev, so I apologize in
> > advance
> > > if I'm breaking any conventions.
> > >
> > > I've written a bundle that allows sling component developers to quickly
> > > define a hypermedia API for components. The tools contain a Sightly Use
> > > class for Sightly components, but also a generic utility that can be
> used
> > > anywhere, like in a jsp component.
> > >
> > > It uses hypermedia to drive the state of the application (e.g a
> consumer
> > > uses links and forms to change the state) and uses microdata [0] to
> > define
> > > an easy to parse structure. The API can then be consumed by bots or
> used
> > in
> > > testing, while using the same HTML as the media type for the API as the
> > > browser.
> > >
> > > You can find the bundle here [1] if you'd like to have a look. The
> readme
> > > has some examples and you can quickly try it out with a generic python
> > > client [2].
> > >
> > > What do you think about putting this in the contrib/ dir in sling and
> > about
> > > the idea in general?
> > >
> > > Looking forward to some responses.
> > >
> > > - Andrei Dulvac
> > >
> > >
> > > ---
> > > [0] http://www.w3.org/TR/microdata/
> > > [1] https://github.com/dulvac/hapi
> > > [2] https://github.com/dulvac/hapi#consuming-the-api
> >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: [discussion] [contrib] Hypermedia API tools (with Sightly)

Robert Munteanu-3
On Tue, Mar 24, 2015 at 7:46 PM, Radu Cotescu <[hidden email]> wrote:

> Hi Andrei,
>
> I'll try to guide you through the code contribution process, though at some
> point you'll need the PMC's help.
>
> First you would need to start a [VOTE] thread on sling-dev for integrating
> your contribution into Sling's codebase (e.g. "[VOTE] accept Hypermedia API
> tools into contrib"), reference SLING-4513 in this newly created thread and
> attach your source code to SLING-4513 as a zip archive. It's useful to also
> provide an md5 checksum file to make sure that people who will integrate
> your code into Sling's codebase don't end up with a corrupted archive. You
> need at least 3 +1 binding votes (coming from PMC members).
>
> The next step is the IP clearance form [3], which is usually SLING's PMC
> job, though you could help by providing them with a draft. An example of
> this filled form can be found at [4]. You also need to sign and send an
> iCLA form [5] to secretary [at] apache.org. If your code was developed at
> Adobe you might also need to add your name to Adobe's Corporate CLA. This
> IP stuff is usually tracked through another JIRA issue, usually created by
> the sponsoring PMC member, that will block SLING-4513 until all the IP
> issues are cleared.

Great description :-)

The only addition is that the IP stuff must be managed by an ASF
member, not by a PMC.

Robert

>
> Let me know if you need any other details.
>
> Cheers,
> Radu
>
> [3] - http://incubator.apache.org/ip-clearance/index.html
> [4] - http://incubator.apache.org/ip-clearance/sling-sightly-xss.html
> [5] - https://www.apache.org/licenses/icla.txt
>
> On 17 March 2015 at 17:30, Andrei Dulvac <[hidden email]> wrote:
>
>> Hi,
>>
>> Thanks a lot, Felix for the confidence vote.
>>
>> I created *SLING-4513* to track this.
>>
>> Any chance someone can help with this? The codebase is quite tiny.
>>
>> Thank you,
>> Andrei
>>
>>
>>
>>
>> On Thu, Mar 12, 2015 at 12:34 PM Felix Meschberger <[hidden email]>
>> wrote:
>>
>> > Hi all
>> >
>> > I just had a good discussion with Andrei on this topic. This really looks
>> > interesting and I even think this could be used as the basis for
>> HTTP-based
>> > APIs.
>> >
>> > I suggest you, @Andrei, create a Sling issue from where we can move
>> > forward.
>> >
>> > Some more suggestions I already discussed with Andrei:
>> >
>> >   * Investigate whether the HApiUse can be registered as a UseProvider
>> > service and thus not require to export it and also to make it easier to
>> > use, i.e. not having to know the fully qualified class name.
>> >   * Having samples for JSP would be cool as well (We should also
>> > investigate how much a tag lib would help for JSP)
>> >
>> > All in all, things we might consider moving forward working towards a
>> > first release and not blocking adoption by Sling.
>> >
>> > And then: There HApi.js which IIUIC is used in the Node.js world to build
>> > web applications. We should investigate whether we would have to change
>> the
>> > name of this feature.
>> >
>> > To summarise: Thanks for the offer. Lets move this forward.
>> >
>> > Oh, and yes: Do we have a volunteer to coach Andrei moving this
>> > contribution forward ? Thanks a lot !
>> >
>> > Regards
>> > Felix
>> >
>> > > Am 30.01.2015 um 18:57 schrieb Andrei Dulvac <[hidden email]
>> >:
>> > >
>> > > Hi,
>> > >
>> > > This is the first thread I initiate on sling dev, so I apologize in
>> > advance
>> > > if I'm breaking any conventions.
>> > >
>> > > I've written a bundle that allows sling component developers to quickly
>> > > define a hypermedia API for components. The tools contain a Sightly Use
>> > > class for Sightly components, but also a generic utility that can be
>> used
>> > > anywhere, like in a jsp component.
>> > >
>> > > It uses hypermedia to drive the state of the application (e.g a
>> consumer
>> > > uses links and forms to change the state) and uses microdata [0] to
>> > define
>> > > an easy to parse structure. The API can then be consumed by bots or
>> used
>> > in
>> > > testing, while using the same HTML as the media type for the API as the
>> > > browser.
>> > >
>> > > You can find the bundle here [1] if you'd like to have a look. The
>> readme
>> > > has some examples and you can quickly try it out with a generic python
>> > > client [2].
>> > >
>> > > What do you think about putting this in the contrib/ dir in sling and
>> > about
>> > > the idea in general?
>> > >
>> > > Looking forward to some responses.
>> > >
>> > > - Andrei Dulvac
>> > >
>> > >
>> > > ---
>> > > [0] http://www.w3.org/TR/microdata/
>> > > [1] https://github.com/dulvac/hapi
>> > > [2] https://github.com/dulvac/hapi#consuming-the-api
>> >
>> >
>>



--
Sent from my (old) computer
Reply | Threaded
Open this post in threaded view
|

Re: [discussion] [contrib] Hypermedia API tools (with Sightly)

Andrei Dulvac
Thanks Radu, very helpful and succint. I'll get to it.

Thanks,
Andrei

On Tue, Mar 24, 2015 at 8:58 PM Robert Munteanu <[hidden email]> wrote:

> On Tue, Mar 24, 2015 at 7:46 PM, Radu Cotescu <[hidden email]> wrote:
> > Hi Andrei,
> >
> > I'll try to guide you through the code contribution process, though at
> some
> > point you'll need the PMC's help.
> >
> > First you would need to start a [VOTE] thread on sling-dev for
> integrating
> > your contribution into Sling's codebase (e.g. "[VOTE] accept Hypermedia
> API
> > tools into contrib"), reference SLING-4513 in this newly created thread
> and
> > attach your source code to SLING-4513 as a zip archive. It's useful to
> also
> > provide an md5 checksum file to make sure that people who will integrate
> > your code into Sling's codebase don't end up with a corrupted archive.
> You
> > need at least 3 +1 binding votes (coming from PMC members).
> >
> > The next step is the IP clearance form [3], which is usually SLING's PMC
> > job, though you could help by providing them with a draft. An example of
> > this filled form can be found at [4]. You also need to sign and send an
> > iCLA form [5] to secretary [at] apache.org. If your code was developed
> at
> > Adobe you might also need to add your name to Adobe's Corporate CLA. This
> > IP stuff is usually tracked through another JIRA issue, usually created
> by
> > the sponsoring PMC member, that will block SLING-4513 until all the IP
> > issues are cleared.
>
> Great description :-)
>
> The only addition is that the IP stuff must be managed by an ASF
> member, not by a PMC.
>
> Robert
>
> >
> > Let me know if you need any other details.
> >
> > Cheers,
> > Radu
> >
> > [3] - http://incubator.apache.org/ip-clearance/index.html
> > [4] - http://incubator.apache.org/ip-clearance/sling-sightly-xss.html
> > [5] - https://www.apache.org/licenses/icla.txt
> >
> > On 17 March 2015 at 17:30, Andrei Dulvac <[hidden email]>
> wrote:
> >
> >> Hi,
> >>
> >> Thanks a lot, Felix for the confidence vote.
> >>
> >> I created *SLING-4513* to track this.
> >>
> >> Any chance someone can help with this? The codebase is quite tiny.
> >>
> >> Thank you,
> >> Andrei
> >>
> >>
> >>
> >>
> >> On Thu, Mar 12, 2015 at 12:34 PM Felix Meschberger <[hidden email]>
> >> wrote:
> >>
> >> > Hi all
> >> >
> >> > I just had a good discussion with Andrei on this topic. This really
> looks
> >> > interesting and I even think this could be used as the basis for
> >> HTTP-based
> >> > APIs.
> >> >
> >> > I suggest you, @Andrei, create a Sling issue from where we can move
> >> > forward.
> >> >
> >> > Some more suggestions I already discussed with Andrei:
> >> >
> >> >   * Investigate whether the HApiUse can be registered as a UseProvider
> >> > service and thus not require to export it and also to make it easier
> to
> >> > use, i.e. not having to know the fully qualified class name.
> >> >   * Having samples for JSP would be cool as well (We should also
> >> > investigate how much a tag lib would help for JSP)
> >> >
> >> > All in all, things we might consider moving forward working towards a
> >> > first release and not blocking adoption by Sling.
> >> >
> >> > And then: There HApi.js which IIUIC is used in the Node.js world to
> build
> >> > web applications. We should investigate whether we would have to
> change
> >> the
> >> > name of this feature.
> >> >
> >> > To summarise: Thanks for the offer. Lets move this forward.
> >> >
> >> > Oh, and yes: Do we have a volunteer to coach Andrei moving this
> >> > contribution forward ? Thanks a lot !
> >> >
> >> > Regards
> >> > Felix
> >> >
> >> > > Am 30.01.2015 um 18:57 schrieb Andrei Dulvac <
> [hidden email]
> >> >:
> >> > >
> >> > > Hi,
> >> > >
> >> > > This is the first thread I initiate on sling dev, so I apologize in
> >> > advance
> >> > > if I'm breaking any conventions.
> >> > >
> >> > > I've written a bundle that allows sling component developers to
> quickly
> >> > > define a hypermedia API for components. The tools contain a Sightly
> Use
> >> > > class for Sightly components, but also a generic utility that can be
> >> used
> >> > > anywhere, like in a jsp component.
> >> > >
> >> > > It uses hypermedia to drive the state of the application (e.g a
> >> consumer
> >> > > uses links and forms to change the state) and uses microdata [0] to
> >> > define
> >> > > an easy to parse structure. The API can then be consumed by bots or
> >> used
> >> > in
> >> > > testing, while using the same HTML as the media type for the API as
> the
> >> > > browser.
> >> > >
> >> > > You can find the bundle here [1] if you'd like to have a look. The
> >> readme
> >> > > has some examples and you can quickly try it out with a generic
> python
> >> > > client [2].
> >> > >
> >> > > What do you think about putting this in the contrib/ dir in sling
> and
> >> > about
> >> > > the idea in general?
> >> > >
> >> > > Looking forward to some responses.
> >> > >
> >> > > - Andrei Dulvac
> >> > >
> >> > >
> >> > > ---
> >> > > [0] http://www.w3.org/TR/microdata/
> >> > > [1] https://github.com/dulvac/hapi
> >> > > [2] https://github.com/dulvac/hapi#consuming-the-api
> >> >
> >> >
> >>
>
>
>
> --
> Sent from my (old) computer
>