REST without PUT [closed] - rest

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
The ThoughtWorks Technology Radar July 2014 mentions under Techniques / Trial a new trend called REST without PUT. They explain it as:
In the last radar we talked about Capturing Explicit
Domain Events, putting emphasis on recording the
business-meaningful events that have triggered state
transitions instead of just CRUD’ing entities. REST
interfaces commonly use PUT to update resource state,
however it’s often better to POST to record a new event
resource which captures intent. REST without PUT has a
side-benefit of separating command and query interfaces
and forces consumers to allow for eventual consistency.
Are there any additional resources where one can read about this? Is the term REST without PUT an idea made up by ThoughtWorks, or is this something academic, or …?
Any hints on this?

IMHO they are saying about that one should stop looking behind on CRUD operations and focus on state-transitions. Then you map set of transitions to specific events. One of them is used to update entity. How it would be updated and what would be updated is decided on context of event. One need to POST event of updating instead of PUT update.
BTW that solves one problem with using pure HTML in REST - HTML doesn't allow to trigger PUT or DELETE without JavaScript.

REST without PUT isn't standard; as you guessed, this is just ThoughtWorks thing.

Related

GraphQL or REST [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
Did someone try developing a GraphQL instead of RESTful API? Can someone give real life (not only theoretical) pros and cons. Basically from my research I found that the GraphQL power is to get exactly what you need nothing more. Where with REST APIs, you often have to make a series of requests and you can easily get back more information than you really needed.
Is it worth the time spent on researching and learning GraphQL? Any bugs or showstoppers that get your attention?
This question is primarily opinion-based.
But from my experience:
Multiple requests on a RESTful-API for just one thing often indicates a lack in the API design, namely the needed resource was not available and therefore stuff needs to be gathered from different resources to compensate for this.
A REST-API that could be easily replaced by GraphQL indicates, that the API was in fact a CRUD-HTTP-API, what is considered an Anti-Pattern among REST-Evangelists.
Also worth noting is, that GraphQL puts responsibilty on the client, because the backing API is reduced to be a datastore that just needs to be queried. REST on the other hand enforces the behaviour of the client and therefore reduces responsibility on it. The client gets reduced to be something similar to a browser.
There are cases the one or the other approach would yield better results, but that greatly depends on your situation.

Ceridian Dayforce HRIS API location [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
Our company is considering connecting Ceridian Dayforce HR management system with our product.
Now I was asked to estimate required time and effort it would require to do so. The problem is, I can't find documentation source for the API. Dayforce seem to provide an API, for example they have this article that seem to state they support API integration, but data sheet itself is one page size and written in purely non-technical way.
I am wondering: is there any public source of such documentation? If there is none, does this mean that there is no API available or that documentation is only provided to developer once they finish approvement process of some kind?
There is indeed an API. Integration can be performed using SOAP or REST.
You will need to request from Ceridian that they create a test instance for you. After this, it's a good idea to ask for assistance in creating a user role for the purposes of accessing web services. I had some serious pitfalls in this process since it is not reasonable to ask your own HR staff (who likely only use the front end) to know how to do this for you. Ask Ceridian's support team instead.
I have been working on this for about two weeks. I have successfully performed GET and PATCH requests (both using Postman and in code) but creating a new employee with POST is not as straightforward as the documentation makes it out to be. There seem to be many snags along the way and Ceridian is not very cooperative in providing clear explanations when problems occur (they don't really provide any support on these things, and they make this fairly clear in their documentation). Their support staff are not really development people, so their knowledge in this domain is likely limited as can be expected.
With that said, I can say that the documentation may seem to be detailed, but be aware that the detail ends after the 'happy path' cases are outlined.
You need to contact your account manager at Ceridian to get details. They do have detailed documentation, just not freely available.
Dayforce is introducing Restful web services in their new realease 53. If that helps.

Can a REST resource point/wrap another external REST API? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
I would like to have a URI like this /car/toyota, however I don't want the car resource to map to a database table for example. Instead I would like car to just be resource that is used for information retrieval only (ie. no POST, PUT, or DELETE on it), and /car/toyota/ would retrieve that data somewhere else, say through another REST API on another web server that provides this information.
Is this good design?
This probably belongs on something more like https://softwareengineering.stackexchange.com/
That said, this question depends entirely on the infrastructure of the environment you're making your REST requests on. If you have the ability to control the REST API on the web server providing the information, there's really no reason to wrap that API in another API. All of the call forwarding and potential necessity to translate from one request format to another really just adds un-necessary overhead.
That said, if you're accessing an API that you have no ability to re-format, or if you're accessing an API that you don't want client servers talking to directly, then there's a potential design perk for wrapping a different REST API in your own read only API.
Unfortunately, without having a clear picture of the entire architecture and the problem you're trying to solve, it's pretty difficult to decide if a wrapped API is a good design or not. My only advice is the preferred approach would be to edit the existing API if you can, but that isn't always practical.

Most flexible tool to track arbitrary events in a web app for the purpose of A/B testing? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
I am looking for some tool or service that can be used to track arbitrary events in web based software, for the purpose of running A/B tests and measuring various other things. I am aware of Optimizely, but that seems only suitable for testing simple things in normal websites and Google Analytics is not really suitable for this type of things and there is a lot of hassle when you want to track events from the backend and link them with a user's session in GA.
An ideal solution would be some service accepting HTTP GET requests with arbitrary parameters and then letting users do queries in an SQL-like language. I have many times put together some less scalable solution with MySQL or a less flexible one that stores everything in text files and processed and aggregated them separately into desired format. But building a both flexible and scalable version would require a lot more time and I guess there are already good solutions out there. Does anyone know of any?
Other requirements are:
It must be possible to do both back-end and front-end requests.
It must be possible to do use it in widgets, running on other peoples' websites
It would be nice if it could automatically create readable reports with maybe some diagrams, etc.
If anyone has any experience with this kind of tools, I would be very glad to hear your thoughts.
Thanks for your help.
Have you tried mixpanel? We've found it quite flexible and powerful.
https://mixpanel.com/

Is there a system or framework for non-programmer form creation? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
Anyone know of a system or framework for a non-programmer form creation? Not a full implementation, but something that handles the designer aspect and something that handles the displaying for being filled in. All the logic we'll be doing. Maybe just a pair of widgets.
We've got a client-server application into which normal users enter and modify data in a thick client and we want to allow the customers to update and create forms with another thick client application, rather than calling us every time they need a letter changed. We want something to do the display bits while we implement the various hooks and functions the system uses.
We're a java shop, but we expect that we're open to writing these clients in another language if it'll be easier.
Possibly Xopus with a schema for the XForm could work.
http://xopus.com/
Try searching for XForms libraries and tools. XForms is a new-ish standard format for defining forms and there are some libraries and tools available for it. Haven't tried any of these myself.
EDIT:
This looks interesting: http://www.orbeon.com/forms/builder
Well, you're a Java shop so this might not be the best tool for you, but from you description you look like a classic case for Infopath:
http://office.microsoft.com/en-us/infopath/default.aspx