Is RESTful API appropriate for services which are nearly computational in nature?

Is RESTful API appropriate for the following scenario?

  • A time-limited token is obtained, which will last for one minute only
  • Image is uploaded to a server
  • Server performs some CPU-heavy image processing upon request, within the time limit
  • The result is available for download, within the time limit
  • When the token expires:
    • The image, computation, result are all discarded / terminated, and any open connection will be closed.
  • All other necessary aspects of web services, such as authentication / service authorization, quota, encryption etc., might still be necessary.

Since the “resource” is only allowed to exist for less than one minute, does it still make sense to make “resource” the first-class citizen in this API?


Update

I have found this link that talks about a REST API for job queueing in RabbitMQ. However it is an “idea page”, so I’m not sure whether this is relevant or not.

REST as a transport protocol is suitable, as an architectual paterrn it might not be enough. Lets assume that you would want to distribute the computation accross multiple servers. This would require round robin load balancer to even out the load, and sticky sessions to ruote the result request to the same server that processed the image. You should take a look at master worker job distribution frameworks such as cellery that are based on queues, and at low latency computation frameworks such as storm.

1

It seems like your reading too much into this.

RESTful API is just a more lightweight stripped down version of SOAP, most commonly it will use JSON (not required) as its generally used for smartphones because its much more lightweight for an environment where a user may have a bad connection or be charged for using it.

SOAP web services have built in benefits for security, encryption etc. if these are going to be required it sounds like you should use SOAP instead of trying to implement your own on top of REST

I suppose there’s no harm to using restful if you’re only using get with the id of the download in order to start download of a file. Just a couple important points to observe:

  1. I would just be careful to make every other standard restful accessor disabled if you’re not going to use them (what sense does update and delete have at that point?). You could still use post to upload the initial file, since that still fits the pattern.
  2. Change the root to distinguish from other more normal restful accesses, even if the file being uploaded involves updating a record which is normally accessed through restful (i.e., if you have /api/files as a root for crud operations on records regarding files, have an /api/files/upload root for the actual file upload).

Restful is meant primarily to simplify server/client interface, so if you run into some sort of trouble, don’t wrack your brain trying to make it work. Simply abandon restful for this type of transaction.

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật