An ergonomic way to interact with your Google Apigee organisation(s).
There’s another Emacs user on my current project. The fact that this is public is for him.
This project is pre-alpha. There’s no well defined API or releases, and things are rapidly changing as I get to grips with Apigee and my team’s work flow, and that is also changing rapidly. The feature set is rather incomplete and what’s there may well only be partially implemented. There’s also no regression testing, and limited documentation. Configuration instructions may well be out of date extremely quickly. Sorry.
That said, I’m using what is here every day and therefore the code should be extended and improved rapidly. For example: there are quite a few major and minor modes knocking around this code base that could, and probably should, be amalgamated.
With that long disclaimer out of the way…
With the project in such a messy state I’ve not done anything about packaging.
Therefore: clone this repo somewhere, and load the elisp in dired (with L).
Currently the only pre-requisite that is not packaged with Emacs is tablist.el. Install it via your chosen Emacs package manager.
In your project root directory create a .dir-locals.el
file with the
something like the following:
;;; Directory Local Variables
;;; For more information see (info "(emacs) Directory Variables")
((nil . ((apigee-project-api . "your-api-name")
(apigee-project-organization . "your-organization-name")
(apigee-project-template-values . (("{{ TEMPLATE_MARKER_1 }}" . "value1-to-insert")
("{{ TEMPLATE_MARKER_2 }}" . "value2-to-insert")))
(eval . (progn
(apigee-project-mode)
(when (eq major-mode 'nxml-mode)
(apigee-xml-mode))
))
))
(nxml-mode . ((eval . (add-to-list 'xref-backend-functions 'apigee-step-xref-backend)))))
See apigee-project.el for a description of the apigee-project
variables. Briefly, there is a pure elisp deployment method for an api
proxy that you are in the source tree of. The implementation will
“compile” this source tree by copying it, and performing template
substitutions defined by the apigee-project-template-values
alist. You can then to deploy it to the next revision of the api
called apigee-project-api
.
The point of this scheme is a rapid develop/deploy/test cycle without leaving emacs.
There’s also some code to interact with key value maps but it’s less well thought out, which is saying something.