ChangeLog

0.12.0 (2025-06-22)

Changes

Macro openrpc-server:define-api now allows to pass class slots definition like you can do with DEFCLASS macro.

0.11.0 (2025-06-19)

Fixes

Now if class's slot has type BOOLEAN, it's value is propertly serialized as "true" or "false". Previously instead of "false" a "null" was returned.

Changes

If slot name has some lowercased symbols, then we don't downcase the name when serializing or deserializing this slot. This allows to work with API's which require someStrangeCased attributes. Here is an example how to use this feature:

(defclass call-response ()
  ((content :type (soft-list-of content)
            :initarg :content)
   (|isError| :type boolean
              :initform nil
              :initarg :is-error)))

0.10.4 (2024-02-04)

Fix

Required parameters of type boolean false can be supplied now. Since yason:*parse-json-booleans-as-symbols* is set, only yason:false maps into json false.

0.10.3 (2023-11-21)

Fix

Add necessary helpers for simple example in Readme.

0.10.2 (2023-11-17)

Fixes

Fixed loading error occured in some cases when jsonrpc/transport/http was not found.

0.10.1 (2023-10-17)

Additions

0.10.0 (2023-10-17)

Changes

Generic-function openrpc-server/interface:make-info now accepts only one argument - object of class openrpc-server/api:api.

0.9.3 (2023-10-16)

Fixes

A function generate-method-descriptions has been added. This function uses the mop for generating the method descriptions at run-time. Previously this happend at compile-time. The generate-method-descriptions is called from the generated specialized describe-object method. Now the output of describe-object should be correct again and show all generated, excluding the describe-object method itself.

0.9.2 (2023-10-15)

Fixes

0.9.1 (2023-09-24)

Fixes

Fix support for multiple parameter types, (particularly for required parameters):

"params": [
  {
    "name": "name",
    "schema":
    {
      "type": ["string", "null"],
      "maxLength": 255
    },
    "required": true,
    "summary": "User name."
  }
]

0.9.0 (2023-08-19)

Backward Incompatible Fixes

Fixed how oneOf type is processed when there are only two subtypes like that:

"oneOf": [
  {
    "type": "null"
  },
  {
    "type": "object",
    "properties": {
      "project_name": {
        "type": "object",
        "properties": {},
        "required": [],
        "x-cl-class": "T",
        "x-cl-package": "COMMON-LISP"
      },

Previously in this case openrpc-client generated code which returned a hash-table. Now it will return a common-lisp object or NIL.

0.8.0 (2023-08-16)

Backward Incompatible Fixes

Nested dataclasses now handled propertly in the client. Previously, nested objects were parsed as hash-maps.

0.7.1 (2023-08-11)

Fixes

Fixed location for autogenerated generic function and added docstrings taken from OpenRPC spec.

0.7.0 (2023-08-09)

Backward Incompatible Changes

Fixes

0.6.0 (2023-06-09)

Additions

0.5.0 (2023-05-27)

Changes

Additions

Fixes

0.4.0 (2022-11-07)

0.3.0 (2022-10-30)

0.2.0 (2022-10-25)

0.1.0 (2022-10-13)