Is Seafile Web API 2.1 production ready?

Hello!

I am planning to write a wrapper for Seafile’s Web API for native apps. The most important question is it ready for production? Let’s say that if I would wrap whole Web API 2.1 to my mobile app, it could provide same features as Seafile’s official app? Or for desktops. Does API support file syncing or I have to do that in different way?

Sorry if the questions are basic, it’s my first time working with file sync server.

Regards!

Seafile’s web interface (Seahub) uses the API to communicate with the Seafile server.

It is up to you to decide if Seahub is production ready :wink:

What about Seafile’s apps? How do they communicate with server?

I am not a developer, you are.

You find the source code of the mobile apps and the sync client here: https://github.com/haiwen

1 Like

I went to iOS app’s source code, but I don’t understand Objective-C (at least most of the code). I forgot that desktop client is written mostly in cpp (which is easier to read for me than Obj-C) and there I have found that it uses web api 2.1 endpoints, so I think that file syncing (which uses Git’s algorithms) probably uses that as well.
If I am wrong, please correct me.

The API is very stable! We have used it just recently to create an add-in for Microsoft Outlook. Before that, we used the web API to integrate Seafile functions in a product of our own:

1 Like

I was recently writing a client in Go (for rclone) and I found out that the documentation wasn’t up to date.

The documented API do work, but there are some better undocumented version. I discovered them in the seahub python code.

For example, to copy, move or rename a file or directory, the new api/v2.1/repos/_libraryID_/file/ and api/v2.1/repos/_libraryID_/dir/ work much better than the documented ones (api2/repos/_libraryID_/file/ and api2/repos/_libraryID_/dir/)

But apart from a few inconsistencies between calls (parameters and return values), it does the job :+1:

1 Like

Awesome! I saw documentation of api 2.1 in manual, but often I can’t open that site (throws error that site is not responding), but as I remember there wasn’t anything interesting about new app except new methods. Anyway, thanks! I’ll look into that.