This FAQ is for people brand new (or returning) to the Salesforce1 Platform and looking to create new integrations.
We have a broad family of products which each get branded (or at times re-branded) over the years. Salesforce1 refers to the entire family of those products. Force.com refers specificialy to tools on our SaaS cloud (i.e. Apex and Visualforce). Don’t let the branding confuse you, the important parts for integration are:
- Our family of API’s
- Our Identity Services
- Apex, our cloud-based coding language
Heroku is part of the Salesforce1 family. It runs on AWS and is separate from Force.com. It allows you to quickly deploy Java, Node.js, PHP, Ruby (and other languages) apps to the cloud.
Our Identity services include an OAuth 2.0 implementation. Here is some documentation on creating a Connected App and sample code: https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/quickstart_oauth.htm
Data modeling on Salesforce is object based, basically very abstracted data tables. Standard objects are the ones used in Sales and Servce Cloud (accounts, contacts, etc). Custom objects are the ones defined by the developer. You can also add custom fields to standard objects.
Force.com has a full REST API which supports every standard object, every custom object and quite a few bits of system information as well. As you create custom objects, the REST API is automatically extended to fit the new data model.
Out of the box, it supports CRUD/Q (Create Read Update Delete and Query) as well as describe (to determine the current data model).
You can create custom endpoints using Apex.
We have a SOAP API which operates effectively the same as our REST API. We also have a Streaming API for pushing data via the Bayeux protocol. There is a Bulk API for doing large data operations.
We also have variants of our REST API for more specific types of data like Chatter and Analytics.
Apex is completely cloud-based. Your Salesforce instance compiles the code server-side. It can be run as controller for pages, executed directly (called Anonymous Apex), run as background batch process, triggered on data changes, scheduled as a task or serve as a custom endpoint. It’s very similar in structure to Java. You can code Apex directly from your Salesforce instance using the browser based Developer Console or via a client based IDE (which would hook into our Tooling API).
Yes, Apex has a full HTTP stack.
We have an interactive learning framework called Trailhead:
https://developer.salesforce.com/trailhead
If you are reading this you could probably start with the Developer Trail - Beginner and focus on the Data Modeling and Apex sections (each module is self-sufficient). To use Trailhead (and develop on the platform in general) you can sign up for a Developer Edition instance:
https://developer.salesforce.com/signup
Developer Editions are free and do not expire. They are not trials. You can have multiple developer editions if needed.
For integration you might also check out our Integration Workbook:
https://developer.salesforce.com/docs/atlas.en-us.integration_workbook.meta/integration_workbook/
And check out our cheat sheets: