Go REST Server Library v2.15.2 released

It’s only a minor fix regarding status codes. So far calling a handler with an unsupported (unimplemented) the status code 500 (internal server error) has been returned. More correct in the sense of RESTful APIs is instead the status code 405 (method not allowed). This code is now returned. More about the project at PROJECTS → Go REST Server Library.

Go Library v4.24.2 released

This bugfix release for the Tideland Go Library affects three packages. The first one is only a small documentation typo in gjp, nothing worth this release. But the second one is in logger. Here I had a test logger as backend in the tests. This now became helpful in other tests too. So I moved it together with helpful methods for testing as TestLogger into the public package itself. The TestLogger embeds the standard Logger interface but also provides

Go Couch supports searches

Until version 2.0 the CouchDB used views and here map/reduce to provide access to groups of documents. Today there’s also the find request using Mango Queries to find the decuments of interest. With the latest beta update the Tideland Go CouchDB Client contains the find package to create these queries the Go way and perform flexible parametrized requests to find the documents you want. Imagine a database containing documents with documents describing persons with their age and their activity state.

Go Library v4.24.1 released

Sadly needed to release a fix short time after the version 4.24.0 of the Tideland Go Library. We’ve detected troubles of the gjp parsing and processing documents containing empty arrays. Funnily fixing this bug led to a better internal design. 😄 More about the project at PROJECTS → Go Library.

Upcoming Go Cells v6.0.0

It has been quiet around the Go Cells since some time. But it’s alive and in change. Currently it’s making good progress towards the new major version 6.0.0. One important change here is the introduction of Queues for the transportation of events. Right now there’s only one implementation using channels as before. But the idea is to add other ones for distributed cells later. And to achieve this also the Payload format had to be changed and some other in-memory techniques like Scene had to be removed.

Go Library v4.24.0 released

Short time after the version 4.23.0 the 4.24.0 has been released. It’s a nice mix of different package extensions. The first one extends and fixes the audit test package. So Assertion now provides WaitTested() to run a user defined test function after receiving data on a signal channel out of a goroutine. So far only equality has been testable. Additionally Assertion now knows SetFailable() to pass the testing.T in a testing.

Go Library v4.23.0 released

The new version 4.23.0 contains two major changes. First is the new package gjp, an acronym for Generic JSON Parser. Reason for it is the fact, that sometimes JSON documents aren’t very good representable by nested Go structures. Here Go allows to parse documents into empty interfaces. But these are inconvenient to handle too. The GJP encapsulates this way of parsing and provides access by pathes. Think of the following document parsed with myDoc, err := gjp.

Go REST Server Library v2.15.0 released

Short time after verion 2.14.0 I had to release the version 2.15.0. Sadly it’s incompatible with its predecessor, but only with the new introduced Job method Path(). This now returns an instance of the type Path providing more detailed access to its parts. Beside getting these by index the Path now also contains accessors to Domain(), Resource(), and ResourceID(). The accessors provided by Job are now deprecated and will be removed at some time later when version 3 will be reased.

Go REST Server Library v2.14.0 released

It contains two changes. The parts of a request path are now retrievable via Job.Part(index int) string. ResouceHandlers now can have methods better matching to REST than the standard methods. The mapping is POST to Create() GET to Read() PUT to Update() PATCH to Modify() DELETE to Delete() OPTION to Info() In case of a handler implementing both, e.g. Get() and Read(), the standard one will be taken. So here Get() due to the HTTP GET.