Making tcWebHooks configurable via TeamCity’s REST API : please discuss

Posted on Updated on

The TeamCity REST API looks to be quite popular (I’ve not knowingly used it). I’ve had a request to add REST API support to tcWebHooks. I’ve not written a public webservices API before. Only really web APIs for services that I control both ends of.

Note: This is not a commitment to build it, more a place to put my thoughts on whether it’s worthwhile or not and how it might work.

I see the four basic requirements.

  • List
  • Create
  • Update
  • Delete
  • Is there anything else needed? Perhaps test?

I think there are three ways it could be accomplished.

  1. Write it myself and probably get it wrong.
  2. Write it myself with a lot input from the users. Who is willing to commit to helping me spec it and test it?
  3. Write a Java API and let someone else write the webservice parts.

The stuff I’ve done before was sending and receiving JSON, and only used POST and GET. Do I need to worry about the whole strict PUT, DELETE etc verbs?

What should the request payload look like? XML? JSON? Name Value Pairs?
What should the response payload look like?

Any good examples? I presume basing it on the existing TeamCity REST API would be the path of least surprise for users. I’ve not used it so don’t have a lot of experience on how it works.

Advertisements

One thought on “Making tcWebHooks configurable via TeamCity’s REST API : please discuss

    Ory said:
    June 24, 2013 at 09:20

    NetWolf,
    We’ve actually written an extension for TeamCity REST API for other uses.
    It’s on github, feel free to take a look: https://github.com/wix/teamcity-rest-api-extension
    I haven’t touched it recently (and am not the one who wrote it), but I’ll dig into it later, and would be happy to help you spec/test webhooks API support.
    Ory

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s