GhostSharp 1.0.6
See the version list below for details.
dotnet add package GhostSharp --version 1.0.6
NuGet\Install-Package GhostSharp -Version 1.0.6
<PackageReference Include="GhostSharp" Version="1.0.6" />
paket add GhostSharp --version 1.0.6
#r "nuget: GhostSharp, 1.0.6"
// Install GhostSharp as a Cake Addin #addin nuget:?package=GhostSharp&version=1.0.6 // Install GhostSharp as a Cake Tool #tool nuget:?package=GhostSharp&version=1.0.6
GhostSharp
This is a wrapper around the Ghost API v3.0, a RESTful JSON API built into the core of the Ghost blogging platform. Check out the official Ghost API docs and read about my own experience using them.
Usage
Accessing the Content API
If you need to access the Content API, all you need is the URL of your site and a Content API Key, available on the "Integrations" page. Once you have those pieces of information, you can access any "public" content.
var ghost = new GhostSharp.GhostContentAPI("https://grantwinney.com", "a6d33f1b95ff17adf0f787a70a");
var settings = ghost.GetSettings();
Console.WriteLine($"Welcome to {settings.Title}: {settings.Description}\r\n");
Console.WriteLine($"Navigation: {string.Join(", ", settings.Navigation.Select(x => x.Label))}");
Output:
Welcome to Grant Winney: We learn by doing. We've all got something to contribute.
Navigation: Home, APIs, Lambda, Rasp PI, About Me, CV
Accessing the Admin API
If you need to access the Admin API, all you need is the URL of your site and an Admin API Key, also available on the "Integrations" page. Once you have those pieces of information, you can access any "private" content.
var ghost = new GhostSharp.GhostAdminAPI("https://grantwinney.com",
"5cf706fd7d4a33066550627a:9e5ed2b90e40f68573b0ccaf4aef666b047fc9867ad285b2e219eed5503bae53");
var site = ghost.GetSite();
Console.WriteLine($"Welcome to <a href='{site.Url}'>{site.Title}</a>\r\n");
Console.WriteLine($"Running Ghost v{site.Version}");
Output:
Welcome to <a href='https://grantwinney.com/'>Grant Winney</a>
Running Ghost v2.23
Versioning
This wrapper is written around v3.0 of the Content and Admin APIs, currently the latest version. As they update the API, I'll create a tag for the current release, before updating to the newest one.
Running the Tests
The tests are setup to run against an actual instance of the Ghost blog, using a valid API key. There are details in the TestBase.cs
class that you'll need to fill in, such as a valid API key, valid post ID, valid post slug, etc, etc.
Problems?
Open an issue, and include errors, unexpected behavior, steps to reproduce, etc. The more details, the better!
Feel free to open a PR if you figure out how to fix it.
Ideas?
Open an issue. I can't promise when new features or suggestions will get implemented, but I'll check them out.
Release Notes
- 1.0.6 - Stabilize implementation of v3.
- 1.0.5 - Implement v3 of the API.
- 1.0.4 - General code cleanup. Added license to NuGet package.
- 1.0.3 - Covers stable Admin API endpoints, currently posts, pages, images, site.
- 1.0.2 - Beginning work to support Admin API.<br>Breaking change: GhostAPI is now split into GhostContentAPI and GhostAdminAPI
- 1.0.1 - Added comments to aid in intellisense.
- 1.0.0 - Covers the Content API endpoints.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- JWT (>= 7.2.2)
- Newtonsoft.Json (>= 12.0.3)
- RestSharp (>= 106.11.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Wrapper for the Ghost API. Full release notes: https://github.com/grantwinney/GhostSharp/blob/master/README.md#release-notes