I have an app that creates apex classes for some purposes, right now we are using Tooling Api, but some objects are not entirely accessible with it (e.g. developerName in RecordType Object). So my question is is there a way to overcome this limitation (e.g. REST API or SOAP API etc.)
Generally speaking, for non-production orgs, you have several options available.
PATCH /services/data/vXX.X/tooling/sobjects/ApexClass/:Id PATCH /services/data/vXX.X/tooling/sobjects/ApexClass/Name/:Name
DELETE /services/data/vXX.X/tooling/sobjects/ApexClass/:Id DELETE /services/data/vXX.X/tooling/sobjects/ApexClass/Name/:Name
For deploying multiple ApexClass objects (and other code) in a single deployment. See the documentation for this, it is relatively complex.
PATCH /services/data/vXX.X/sobjects/ApexClass/:Id PATCH /services/data/vXX.X/sobjects/ApexClass/Name/:Name
DELETE /services/data/vXX.X/sobjects/ApexClass/:Id DELETE /services/data/vXX.X/sobjects/ApexClass/Name/:Name