<br><br><div class="gmail_quote">2012/2/12 Frank Karlitschek <span dir="ltr"><<a href="mailto:frank@owncloud.org">frank@owncloud.org</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="im"><br>
On <a href="tel:12.02.2012" value="+4812022012">12.02.2012</a>, at 21:44, Bartek Przybylski wrote:<br>
<br>
> 2012/2/12 Frank Karlitschek <<a href="mailto:frank@owncloud.org">frank@owncloud.org</a>>:<br>
>> Hi everybody,<br>
>><br>
>> it´s importants that we structure ownCloud properly so that the code is still maintainable in a few years and that new developers understand what we do and can contribute.<br>
>><br>
>> The app concept is very important to make it easy for developers to extend ownCloud without the need to understand every part of ownCloud. My goal is that every ownCloud user can install, update and delete every app independently from the used ownCloud core. Every app developer should be able to release a new app at every point in time and also update it independently from the core. The apps should run on different core versions if possible.<br>


>><br>
>> It´s of course still a long way till we reach that goal but I think we should start now.<br>
>><br>
>><br>
>> I propose to do two things now.<br>
>><br>
>> - public api<br>
>> Currently all the apps access all the internal classes and variables of owncloud directly. This means that it´s difficult to develop an app that runs on different core versions and the code will get messy over time. I think we should define a "public api" that wraps all the internals, is perfectly documented and stable over different core versions. We can add new classes, functions and optional function parameters over time but we don´t want to break existing apps. This public api is the only allowed way to access core features.<br>


><br>
> I put this topic in the picture multiple times on irc, unfortunately<br>
> no one never took care about it, lets hope that after project founder<br>
> says something it will be noted.<br>
<br>
</div>Hehe. I suggest to discuss important stuff like this on the mailinglist. Not everybody reads IRC all the time.<br>
<div class="im"><br>
><br>
> Are you also thinking about providing REST api for external apps so OC<br>
> might be embeeded to users websites ? (like public "trash can")<br>
<br>
</div>Thats a very interesting idea. I haven´t thought about that but that an interesting direction.<br>
That exactly would be the usecase for the end user?<br>
<br>
I´m interested in your ideas :-)<br>
<div class="HOEnZb"><div class="h5"><br></div></div></blockquote><div><br></div><div>My idea of public API is to provide single entry point to OC instance ie in JSON format. OC will be able to handle such request iff some app will register for such rqeuest and provide handling mechanism.</div>

<div>Profits for developers: </div><div>* no need to worry for providing easy and secure entry to its apps</div><div>* ease of developing 3rd party tools (ie browsers extensions, jquery plugins for WP etc) </div><div>Profits for end users:</div>

<div>* more tools which will allow them to interact with their OC instance</div><div>* no need to remember very long path to some app (ie OC/apps/NAME/ajax/some_script_name.php?ARG1=VAR1&... should be shorten to ie OC/access <- arguments passed by POST/GET)</div>

<div>Profils for OC devs: fame and glory ;)</div><div><br></div><div>if i can i would like to take deep cooperation in designing and implementing public API ;)</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="HOEnZb"><div class="h5">
<br>
>><br>
>><br>
>> - git modularization<br>
>> I suggest to split up ownCloud into a "third party" repository where all the external libraries are, "owcloud" where the core lives and "apps" where all the apps are. The apps should be as isolated from the core as possible so that we can release them independently in the future. We discussed this already last year.<br>


>> An independent "third party" repo is also important if we want to use external third party libraries with incompatible licenses like currently PEAR.<br>
>><br>
>> I will restructure the repos and start to work on the public api wrapper on wednesday if no one objects. :-)<br>
>><br>
>><br>
>> So what do you think?<br>
>><br>
>><br>
>> Cheers<br>
>> Frank<br>
>> _______________________________________________<br>
>> Owncloud mailing list<br>
>> <a href="mailto:Owncloud@kde.org">Owncloud@kde.org</a><br>
>> <a href="https://mail.kde.org/mailman/listinfo/owncloud" target="_blank">https://mail.kde.org/mailman/listinfo/owncloud</a><br>
> _______________________________________________<br>
> Owncloud mailing list<br>
> <a href="mailto:Owncloud@kde.org">Owncloud@kde.org</a><br>
> <a href="https://mail.kde.org/mailman/listinfo/owncloud" target="_blank">https://mail.kde.org/mailman/listinfo/owncloud</a><br>
<br>
</div></div></blockquote></div><br>