mirror of
https://github.com/neocities/neocities.git
synced 2025-04-24 17:22:35 +02:00
66 lines
3.4 KiB
Text
66 lines
3.4 KiB
Text
<div class="content single-Col">
|
|
|
|
<h2 class="alpha">NeoCities Developers API</h2>
|
|
|
|
<p><img src="/assets/img/cat-larger.png"></p>
|
|
|
|
<p>
|
|
<strong>Our Developers API allows you to make changes to your site remotely with programming languages!</strong>
|
|
</p>
|
|
<h3>Ideas</h3>
|
|
<p>
|
|
<ul>
|
|
<li>Create your own blog, and use a script to add new blog posts.</li>
|
|
<li>Integrate external HTML editors / upload tools.</li>
|
|
<li>Provide updated air quality information from a gauge at your house.</li>
|
|
<li>Conduct regular backups of your site.</li>
|
|
</ul>
|
|
</p>
|
|
|
|
<h3>Rules</h3>
|
|
<p>
|
|
<ul>
|
|
<li>Do not spam the server with tons of API requests.</li>
|
|
<li>Try to limit recurring site updates to one per minute.</li>
|
|
<li>Do not use the API to "game" the site (increase ranking by manipulating our algorithms, or constantly updating your index.html with the same content). Sites caught doing this will be de-listed from the browse page.</li>
|
|
<li>Do not use the API to data mine / rip all of the sites.</li>
|
|
</ul>
|
|
</p>
|
|
|
|
<h2>API Documentation</h2>
|
|
<p>
|
|
The NeoCities API is a <a href="http://en.wikipedia.org/wiki/Representational_state_transfer" target="_blank">REST</a> API, which uses query parameters for input, and returns data in the <a href="http://en.wikipedia.org/wiki/JSON" target="_blank">JSON</a> format (except for file downloads). It uses client-side <a href="http://en.wikipedia.org/wiki/Basic_access_authentication" target="_blank">HTTP AUTH</a> to authenticate, using your user/site name and password as the credentials. It is designed to play nicely with the most common HTTP libraries available in programming languages, and can be easily used with <strong>cURL</strong> (a command-line tool for making HTTP requests you can use by opening a terminal on your computer).
|
|
</p>
|
|
<p>
|
|
<strong>That's a lot of buzz words if you're new to programming.</strong> Don't worry, it's easier than it sounds! We'll walk you through some working examples you can get started with.
|
|
</p>
|
|
|
|
<h3>POST /api/upload</h3>
|
|
<p>
|
|
Uploads files to your site. You can upload as many files as you want with a single query, as long as the entire request stays within the disk space limit. The parameter name should be the name of the file, with the extension so we know what kind of file it is (index<strong>.html</strong>).
|
|
</p>
|
|
|
|
<h4>Examples</h4>
|
|
<h6>Using cURL</h6>
|
|
<p>Upload a single local file (<strong>local.html</strong>), which will be named <strong>hello.html</strong> on your site:</p>
|
|
<code>$ curl -F hello.html=@local.html https://USER:PASS@neocities.org/api/upload</code>
|
|
|
|
<h6>Using Node.js / Web Browser</h6>
|
|
<p>This example uses the <a href="https://github.com/neocities/neocities-node" target="_blank">neocities</a> module, which works for node.js and web browsers (via <a href="http://browserify.org" target="_blank">browserify</a>). You can install it by running <strong>npm install neocities --global</strong> in your terminal.</p>
|
|
<pre>
|
|
var NeoCities = require('neocities')
|
|
|
|
var api = new NeoCities('YOURUSERNAME', 'YOURPASSWORD')
|
|
|
|
// Upload a file called local.html from your computer,
|
|
// which will be named newfile.html on the site.
|
|
|
|
api.uploadFile('newfile.html', './local.html', function(resp) {
|
|
if(resp.result == 'error')
|
|
throw new Error(resp.error_type+' - '+resp.message)
|
|
|
|
// Display response from API
|
|
console.log(resp)
|
|
})
|
|
</pre>
|
|
</div> <!-- end .content -->
|